关于复用以及两种自定义Cell的方式

关于自定义cell的两种方式,我之前写过这篇博客,当时并不懂复用以及创建时一些代码的实际意思,导致之后我自己用的时候经常性的漏掉一句,现在我有点理解了,来写一下,也算对当时这篇博客的完善。
首先我们看不用创建文件的第一种自定义cell的方式

    UITableViewCell *cell1 = [tableView dequeueReusableCellWithIdentifier:@"cell1"];// 1
    if (cell1 == nil) {
        cell1 = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:@"cell1"];  // 2
    }
    return cell1
  1. 首先我们是根据复用标识符“cell1”从TableView的复用池去找有没有可以复用的cell
    • 这里解释一下复用是什么,假如一个屏幕最多可以显示10个cell,第一个cell划上去看不到了,那么这个cell就会加入TableView的复用池中,等屏幕下方要滑出新的cell的时候,直接把消失的第一个cell重新显示在底部,这时整个TableView只需创建10个cell
  2. 因此我们第二步是先判断是否cell1 == nil,如果是nil,就是说没有,要新建一个

然后我们来看第二种方法

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath  {
    MusicTableViewCell* cell = [tableView dequeueReusableCellWithIdentifier:@"musicCell"forIndexPath:indexPath];  //  1
    return cell;    //  2
}
  1. 这里我们没有在判断if (cell == nil)了,原因是仔细看这个函数比上面那个函数多了一个forIndexPath:indexPath,因此不需要再次进行判断了,当然,前面的注册绝对不能忘
  2. 如果想知道具体原因的,可以看这篇博客
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值