TableView内存优化 ---- 建立缓存池
来源:互联网 发布:java 挂起当前线程 编辑:程序博客网 时间:2024/06/05 14:18
由于iOS设备的内存有限,如果用UITableView显示成千上万条数据,就需要成千上万个UITableViewCell对象的话,那将会耗尽iOS设备的内存。
每一次拖动超出屏幕的都需要再次初始化一个新的cell,重新分配一个内存地址给它,这样前面翻过了的就废弃了。这种垃圾我们是不希望占着内存空间的。那么用什么办法来优化呢?
利用tablieView 自带的缓存池,当有不同的tableViewCell 超出屏幕的时候,就回收到缓存池中,然后再往下滑是要新建一个tableViewCell 的,所以要先判断类型reuseIdentifirer是不是与上面的TableViewCell相同,如果相符就使用缓存池里面的,如果不相符也就没有循环利用的cell 了就新建一个此种类型的tableViewCell 所以用的地址是循环利用的。
实现办法如下(将UITableViewCell 初始化 改为以下的代码就可以了):
static NSString *temp ;
// 1 >通过一个标识 在 缓存池中寻找可循环利用的cell
// dequeue : 出列(查找)
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:temp];
// 2 > 如果没有可循环利用的cell
if (cell == nil) {
cell = [[UITableViewCell alloc]initWithStyle:UITableViewCellStyleDefault reuseIdentifier:temp];
}
- TableView内存优化 ---- 建立缓存池
- TableView优化之高度缓存
- TableView优化之高度缓存
- memcachaed内存缓存优化
- 浅谈tableView内存优化行高问题
- TableView优化
- tableview优化
- Bitmaps与优化|磁盘缓存|内存缓存|双缓存
- Android listview异步加载图片(线程池,内存缓存,SD卡缓存)优化显示
- cocos2d-x 优化(纹理渲染优化、资源缓存、内存优化)
- cocos2d-x 优化(纹理渲染优化、资源缓存、内存优化)
- cocos2d-x 优化(纹理渲染优化、资源缓存、内存优化)
- cocos2d-x 优化(纹理渲染优化、资源缓存、内存优化)
- java内存优化实例----缓存Bitmap
- Android内存优化之内存缓存
- Android内存优化之磁盘缓存
- 如何对Android内存缓存进行优化
- Android内存优化之内存缓存
- HDU 1372 Knight Moves
- EventBus 源码解析
- [LeetCode]Construct Binary Tree from Inorder and Postorder Traversal
- 谈谈Spring
- linux+apache+mysql+php平台构建及环境配置
- TableView内存优化 ---- 建立缓存池
- JAVA 并发编程-读写锁之模拟缓存系统(十一)
- JAVA设计模式之策略模式
- 预处理指令
- [转]远程桌面连接原理
- ios把BOOL和OC对象互换
- 数组
- 采用AOP配置方式的AOP实现及XML解析
- 欢迎使用CSDN-markdown编辑器