CELL的复用

关于CELL的复用,下面是一些细节:

摘自:(http://www.eduoliveros.com/2009/07/reusable-cells-in-uitableview.html

1. All the cells that are visible in the Table have its one UITableViewCell.
2. The UITableView only put cells in the reusable queue when they go outside the visual window.
3. In the first time, all the visible cells in the table are loaded using the Nib file (7,8, 10 times, depending on the height of the cells).
4. Once you start scrolling the table is when UITableView starts to put UITableViewCells in the reusable queue and can be reused in other positions of the table.


下面是苹果官方的“UICatalog”中关于cell 使用的代码:

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath

UITableViewCell *cell = nil;

static NSString *kDisplayCell_ID = @"DisplayCellID";

cell = [self.tableView dequeueReusableCellWithIdentifier:kDisplayCell_ID];

if (cell == nil)

{

cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:kDisplayCell_ID] autorelease];

cell.selectionStyle = UITableViewCellSelectionStyleNone;

}

else

{

/** 此时,该CELL被复用,则清除这个CELL上之前添加的控件 */

// the cell is being recycled, remove old embedded controls

UIView *viewToRemove = nil;

viewToRemove = [cell.contentView viewWithTag:kViewTag];

if (viewToRemove)

[viewToRemove removeFromSuperview];

}


cell.textLabel.text = [[self.dataSourceArray objectAtIndex: indexPath.section] valueForKey:kLabelKey];

UIButton *button = [[self.dataSourceArray objectAtIndex: indexPath.section] valueForKey:kViewKey];

[cell.contentView addSubview:button];


return cell;


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值