iOS关于TableView重用Cell的一点领悟
来源:互联网 发布:张一山 演技 知乎 编辑:程序博客网 时间:2024/05/17 22:24
最近写App遇到了一个奇怪的问题,UITableViewCell的显示状态老是不对,调试了好久,在解决中又对Cell重用机制有了进一步的小领悟,愿与大家分享;)
什么是Cell重用?简单的说你在方法
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell
中使用了如下Cell创建代码:
var cell = tableView.dequeueReusableCell(withIdentifier: "ResistCell", for: indexPath) as! ResistCell
那么恭喜你,你正在使用Cell重用!正因为有Cell的重用机制所以我们可以有效率的利用内存,将已经不再TableView视图中显示的Cell重新给新的Cell使用.
但是这里有一个陷阱:
千万不要将Cell本身与显示相关的状态保存在Cell显示对象本身中!千万不要将Cell本身与显示相关的状态保存在Cell显示对象本身中!千万不要将Cell本身与显示相关的状态保存在Cell显示对象本身中!
重要的话说3遍!!!如果你这样做,对于简单的TableView功能实现可能不会出什么问题,但是一旦你重用的Cell和原来的Cell的显示发生冲突时,那么一些稀奇古怪的TableView界面问题都会出现.
重用Cell会共享原来Cell显示对象(UITableViewCell或其子类)的内存,这就是你必须在之后用Cell数据对象重新设置其显示的原因了.
如果早已明白这个道理那么恭喜你;如果你正在沉陷于此,请尽早将其分开为妙. ;)
阅读全文
0 0
- iOS关于TableView重用Cell的一点领悟
- iOS tableView的cell的重用问题
- 关于TableView的cell重用问题解决办法
- 几个关于TableView的Cell重用问题
- ios关于tableView的重用
- IOS TableView Cell重用机制及TableView
- iOS TableView Cell重用机制及TableView
- TableView的Cell的重用
- iOS中tableView的cell的重用机制
- IOS TableView中Cell的重用reuse机制分析
- iOS:tableView可重用cell的两个方法
- iOS开发,tableView中cell的重用详解
- iOS 关于UICollectionView的cell重用问题
- IOS:tableview的重用
- 关于cell的重用
- IOS TableView Cell重用机制及TableView常用Code
- IOS TableView Cell重用机制及TableView常用Code
- 转:IOS TableView Cell重用机制及TableView常用Code
- 零度编程/自学网
- vector和arrayList的区别
- 614D9828AD3C1E5E0F7C4C4DC70358F0 病毒分析
- 算法竞赛入门经典(第2版)-刘汝佳-第七章解题源码(C++语言)(部分)
- SIM900A、GPRS、GSM 基础知识
- iOS关于TableView重用Cell的一点领悟
- HDU
- 【七日牧函】教会中的多样与合一
- java打印三角形,空心,for循环嵌套
- 责任链模式(ChainOfResponsibility )
- JSTL判断一个list集合里是否包含某个字符串
- 计蒜客17116 Sum 找规律 2017 ACM-ICPC 亚洲区(西安赛区)网络赛
- 关于TCP协议传输过程中的15问题
- [初]Java xml文件的解析