美文网首页
UITableView 性能优化

UITableView 性能优化

作者: 往事不许提 | 来源:发表于2019-05-10 10:38 被阅读0次

1.正确使用reuseIdentifier来重用Cells (重用标识符用static修饰,只创建一次);
2.尽量使所有的view opaque,包括Cell自身;
3.尽量少用或不用透明图层;
4.如果Cell内现实的内容来自web,使用异步加载,缓存请求结果;
5.减少subviews的数量
6.在heightForRowAtIndexPath:中尽量不使用cellForRowAtIndexPath:,如果你需要用到它,只用一次然后缓存结果
7.尽量少用addView给Cell动态添加View,可以初始化时就添加,然后通过hide来控制是否显示

  1. 提前计算并缓存cell高度(缓存到内存 数据模型中),避免重复计算;(ps:heightForRowAtIndexPath 是调用最频繁的代理方法,有多少cell就会被调用多少次,不像cellForRowAtIndexPath只会加载屏幕可见cell的个数)
  2. 滑动停止后加载图片
    方案一:利用NSRunLoop在滑动(UITrackingRunLoopMode)和停止(NSDefaultRunLoopMode)的时候Mode不同来实现:
[imageView performSelector:@selector(setImage:) withObject:nil afterDelay:0 inModes:@[NSDefaultRunLoopMode]];

方案二:利用UIScrollView的代理方法中的scrollViewDidEndDecelerating来实现:

- (void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView {
    // 加载图片
}
  1. 异步绘制,遇到复杂界面,遇到性能瓶颈时,可能就是突破口;

相关文章

网友评论

      本文标题:UITableView 性能优化

      本文链接:https://www.haomeiwen.com/subject/jaxwoqtx.html