UITableViewCell的复用逻辑变更

没有测试每个机型的打印,但是根据经验来看,大部分的cell 在复用时,都是这样的(使用iOS10.2 的手机):


理解中的复用

也就是说第0 个会复用第0个创建的,第n 个会复用第n 个创建的。

但是在iOS15.4 的手机上打印结果是这样的:


cell 复用打印.png

也就是说它并不会像我们理解的那样复用,而是以一种“看心情”的方式获取“cell复用池”中的cell

所以,基于上面的变动,如果你想在cell 内部做一些事情的时候,比如在cell 内部做长链接服务,一定要注意cell 的绑定数据是否变化了,因为即使tableView 不滑动,只在当前页面reloadData ,每次的cell 对象也是不一样的;比如操作cell 内数据时有弹窗,弹窗的同时伴随着reloadData,每次的cell 对象也是不一样的,cell 内部的数据也是会变化的。一定要注意这些情况。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • *面试心声:其实这些题本人都没怎么背,但是在上海 两周半 面了大约10家 收到差不多3个offer,总结起来就是把...
    Dove_iOS阅读 27,312评论 30 472
  • OC语言基础 1.类与对象 类方法 OC的类方法只有2种:静态方法和实例方法两种 在OC中,只要方法声明在@int...
    奇异果好补阅读 9,789评论 0 11
  • iOS网络架构讨论梳理整理中。。。 其实如果没有APIManager这一层是没法使用delegate的,毕竟多个单...
    yhtang阅读 10,652评论 1 23
  • 1.OC里用到集合类是什么? 基本类型为:NSArray,NSSet以及NSDictionary 可变类型为:NS...
    轻皱眉头浅忧思阅读 5,183评论 0 3
  • 1.1 谈一谈GCD和NSOperation的区别? 首先二者都是多线程相关的概念,当然在使用中也是根据不同情境进...
    John_LS阅读 5,105评论 0 12