iOS—自定义cell及两种复用方式

本文介绍了UITableView中两种复用cell的方法:非注册和注册方式。非注册方式需要手动判空处理,而注册方式会自动创建新cell,且无需额外判空。文章详细阐述了两者之间的区别,并提供了实现步骤。
摘要由CSDN通过智能技术生成

首先,在这里反省一下自己,在遇到问题的时候没有及时去解决,这一点很不好,得改

一、关于UITableView 复用cell两种方法:

  • 非注册
    -(id)dequeueReusableCellWithIdentifier:(NSString *)identifier;
    如果没有复用cell,程序可能会返回nil, 所以创建完cell后必须要做判空处理,未获取到则重新创建。这种方法可以不用注册。
 //尝试获得可以复用的单元格。但不一定获得到。得不到返回nil
    UITableViewCell *cell = [_tableView dequeueReusableCellWithIdentifier:@"ft"];
        
    //如果没有获得到
    if(cell == nil) {
   
        cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:@"ft"];
    }
  • 注册
    (id)dequeueReusableCellWithIdentifier:(NSString *)identifier forIndexPath:(NSIndexPath *)indexPath;
    获取复用的cell,如果没有复用的cell,将自动使用提供的class类创建新的cell并返回,后面不需要再进行判空。在此之前必须要注册cell。
[self.tableView registerClass:[MyTableViewCell class] forCellReuseIdentifier:@"ft"];

MyTableViewCell *cell = [self.tableView dequeueReusableCellWithIdentifier:@"ft" forIndexPath:indexPath];

  • 区别:
    注册的方法需要提前将要复用的 Cell 类注册,而不需要在获取 Cell 时手动判断 cell的获取 是否为nil,这是因为 dequeueReusableCellWithIdentifier:identifier forIndexPath:在内部处理了这个过程,使得最后返回的一定是可用的 Cell
    具体看这篇

二、步骤

建立MyTableViewCell文件继承于UITableViewCell

// MyTableViewCell.h文件
@interface MyTableViewCell : UITableViewCell
@property UILabel *label;
@property UIButton *btn
  • 6
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值