回顾 runloop,想到用 runloop 加载大图可以防止卡顿给用户带来不好的体验。那就先写一个卡顿的 demo吧。
我是用 XIB 写的 cell,但是发现不卡呢? 难道是图片太小,又换了更大的图片,还是不卡。看来是苹果提升了 XIB的性能。
用纯代码试一下,确实有点卡,那就用 runloop 解决一下吧。写完之后有一个问题,初始化 tableview显示的第一屏图片不显示,往上滑动,下面的图片可以正常显示。
增加存放添加图片任务的数组tasks的容量,第一屏也正常显示。
- (void)addtask:(RunloopBlock)block {
[self.tasks addObject:block];
// 4, 一屏大概显示24个图片, 现在的判断条件我改为54个,可以正常显示
if (self.tasks.count > 54) {
[self.tasks removeObjectAtIndex:0];
}
}
我的建议是:
- 创建 cell 最好用 XIB 文件
- 用 runloop 时,增大存储加载图片的代码块的数组的容量
如果你有更好的解决方法, 请留言!
网友评论