也懒得再重新写出来了,很多博客都有,下面贴一些地址就好了。
cell的复用机制要点不多:
tableView会维护两个数据:一个visiableCells数组,一个reusableTableCells字典
- visiableCells数组是当前页面能看到的cell的数组
- reusableTableCells字典是存放的cell的复用池,相应的cellIdentifier能获取到对应的cell
- 往上滑的时候,顶上的能看见的cell变得不能看见的时候,就从visiableCells移入到了reusableTableCells中,下次可以通过dequeueReusableCellWithIdentifier:方法获取到;
- 同时,底部重新出现的新的cell就是先使用dequeueReusableCellWithIdentifier:方法去复用池里面找,如果没有就新建,然后添加到visableCells中,如果有的话就直接从resuableTableCells复用池中移入visableCells中
大概就上面那么多吧,下面给几个博客地址写得比较清楚,另外有一些cell复用时,视图重叠的问题和解决方案的:
这篇讲了cell的复用机制原理
IOS Table中Cell的重用reuse机制分析
这篇讲了复用机制原理,还有纯代码和xib使用复用机制的一些问题
IOS:tableview的重用
这篇有将复用机制,还有一些优化,使用时的注意点等
UITableView的复用机制及优化
这篇讲了复用机制使用时的视图重复的问题和解决方案:
IOS之TableViewCell重用机制避免重复显示问题