UITableViewCell的复用bug

1. 使用系统的UItableViewCell

  倘若在创建UITableView的时候注册cell ,可能会造成在第一个cell复用的地址不相同(也就是没有达到复用的目的),这个情况是偶现的,我现在也测试不出来了/(ㄒoㄒ)/~~

2. 自定义的UITableViewCell

如下写法会造成cell第一次复用的地址与初始化的地址不同从而达不到复用的目的


如下写法可以正常的复用cell(自定义的cell含有下载进度条,为了避免出现在进度条更新的过程中滑动cell,出现复用(更新进度条的cell)导致新展示cell的进度条也随之更新)


3. dequeueReusableCellWithIdentifier:和dequeueReusableCellWithIdentifier:forIndexPath:的区别!!

如果你注册过Cell,在没有可用的cell时,前者会返回nil;而后者永远都会从注册的nib或者class中替你创建一个可用的Cell。也就是说,前者调用你需要手动检查nil,而后者不需要;

如果你从没有注册过cell,在没有可用的cell时,前者会返回nil,后者……直接崩溃!也就是说,调用后者你必须确保注册过cell


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

推荐阅读更多精彩内容