UITableView的优化
2016-05-21 15:50
495 查看
UITableView的优化主要从三个方面入手:
提前计算并缓存好高度(布局),因为heightForRowAtIndexPath:是调用最频繁的方法;
异步绘制,遇到复杂界面,遇到性能瓶颈时,可能就是突破口;
滑动时按需加载,这个在大量图片展示,网络加载的时候很管用!(SDWebImage已经实现异步加载,配合这条性能杠杠的)。
除了上面最主要的三个方面外,还有很多几乎大伙都很熟知的优化点:
正确使用reuseIdentifier来重用Cells
尽量使所有的view opaque,包括Cell自身
尽量少用或不用透明图层
如果Cell内现实的内容来自web,使用异步加载,缓存请求结果
减少subviews的数量
在heightForRowAtIndexPath:中尽量不使用cellForRowAtIndexPath:,如果你需要用到它,只用一次然后缓存结果
尽量少用addView给Cell动态添加View,可以初始化时就添加,然后通过hide来控制是否显示
尾巴
肯定很多人会非常好奇,为什么我都是手动用代码创建Cell的?现在主流不都是Xib、Storyboard什么的嘛?我的回答是:要想提高效率,还是手动写有用!抛开Xib、Storyboard需要系统自动转码,给系统多加了一层负担不谈,自定义Cell的绘制更是无从下手,所以,在我看来,复杂的需要高效的界面,还是手动写代码吧!!!
参考:http://www.cocoachina.com/ios/20150602/11968.html
提前计算并缓存好高度(布局),因为heightForRowAtIndexPath:是调用最频繁的方法;
异步绘制,遇到复杂界面,遇到性能瓶颈时,可能就是突破口;
滑动时按需加载,这个在大量图片展示,网络加载的时候很管用!(SDWebImage已经实现异步加载,配合这条性能杠杠的)。
除了上面最主要的三个方面外,还有很多几乎大伙都很熟知的优化点:
正确使用reuseIdentifier来重用Cells
尽量使所有的view opaque,包括Cell自身
尽量少用或不用透明图层
如果Cell内现实的内容来自web,使用异步加载,缓存请求结果
减少subviews的数量
在heightForRowAtIndexPath:中尽量不使用cellForRowAtIndexPath:,如果你需要用到它,只用一次然后缓存结果
尽量少用addView给Cell动态添加View,可以初始化时就添加,然后通过hide来控制是否显示
尾巴
肯定很多人会非常好奇,为什么我都是手动用代码创建Cell的?现在主流不都是Xib、Storyboard什么的嘛?我的回答是:要想提高效率,还是手动写有用!抛开Xib、Storyboard需要系统自动转码,给系统多加了一层负担不谈,自定义Cell的绘制更是无从下手,所以,在我看来,复杂的需要高效的界面,还是手动写代码吧!!!
参考:http://www.cocoachina.com/ios/20150602/11968.html
相关文章推荐
- UI基础_UICollectionView
- IOS使用NSURLRequest或NSURLSession获取沙河目录下文件数据
- HashMap数据引用时,增加key-value键值对
- iOS - 修改UITextField的placeholder颜色
- 漂亮的servlet-acquire cookies
- 点击进入quick search box,搜索不到通话记录
- iOS开发笔记--Core Bluetooth开发
- mysql interview questions and answers
- 广度优先搜索(BFS+STL queue)实现
- 大话 IQueryable和IEnumberable and IList与Lis t区别
- UILabel、 UIButton、 UIActivityIndicatorView 、UISearchBar(16.5.21)
- Java IO - SequenceInputStream
- iOS开发获取UIDatePicker 的时间与获取时间相差8个小时如何解?
- iOS开发 - 第02篇 - UI进阶 - 04 - QQ聊天界面
- private static final long serialVersionUID
- Linkit 7688 DUO(四): 接上各种Arduino传感器和模块——基础篇
- Rails Mysql Incorrect string value
- 自定义一个UITableViewHeaderFooterView、UITableViewCell需要注意的一些方法。
- 阿里巴巴Druid数据源的配置与使用
- 单调队列 HDU 3530 Subsequence