美文网首页
TableViewCell的两种重用方式的区别

TableViewCell的两种重用方式的区别

作者: 萧哒哒 | 来源:发表于2020-11-19 11:12 被阅读0次

    重点:cell重用的重中之重就是reuseIdentifier,不管你是否注册了某cell,只要产生的cell的reuseIdentifier属性是有值的,那么当它划出tableView之后就会被再次重用~

    1.使用register方法先注册(Nib或Class),然后通过下面方法来复用单元格,不用判断cell是否为nil。

    代码:

    dequeueReusableCellWithIdentifier: forIndexPath:


    2.不使用register方法注册,使用下面方法来重用单元格,但是需要判断是否为空,如果为空那就使用initWithStyle: reuseIdentifier:方法产生新的cell并设置复用标识符。

    QZResidentListCell *cell = [tableView dequeueReusableCellWithIdentifier:NSStringFromClass(QZResidentListCell.class)]; 

       if (!cell) {        cell = [[QZResidentListCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:NSStringFromClass(QZResidentListCell.class)];    }
    以上两种方式各有特点。

    方式一更简洁,正常情况下使用方式一没有问题,也更清晰明了。

    方式二适用于封装的情况。也就是说,我采用基础数据model的方式来初始化数据源,然后通过基础数据model中的cellClass来创建cell,也就是说,即便在tableView中有不同的cell,我在封装之后也会在cellForRow方法中只通过一种方式创建cell,这种情况就只能使用方式二了。

    相关文章

      网友评论

          本文标题:TableViewCell的两种重用方式的区别

          本文链接:https://www.haomeiwen.com/subject/demkiktx.html