iOS-UITableView性能优化

UITableView性能优化,这个问题只要做iOS研发相关工作的人都会遇到,或是工作开发需要,或者面试问题。

我这里整理一下,以便于自己和大家需要时候及时查看!

一,基础的优化,针对API

1,对于页面展示东西很多,上下频繁滑动,需要提前计算缓存好高度。这样做的原因heightForRowAtIndexPath:是调用最频繁的方法,提前计算缓存高度能有效提高滑动时流畅度。

2,正确使用reuserIdentifier来重用cell

3,在heightForRowAtIndexPath:中尽量不使用cellForRowAtIndexPath:,如果你真是需要调用它,那么只用一次然后缓存结果


二,基础的优化,针对view图层

1,尽量减少subviews的数量

2,尽量少用或不用透明图层(带有透明图层的view渲染更好性能)

3,cell涉及到圆角,如果cell还多次复用,尽量换乘图片或者贝尔赛曲线自己画出来,提供的layer切圆角API涉及到layer渲染。

4,尽量避免在cellForRowAtIndexPath:中addView给cell动态添加view,可以在初始化时候添加,然后使用hidden属性判断是否显示。

5,尽量view的Opaque设置为YES,opaque属性提示绘制系统如何处理view。如果opaque设置为YES,绘图系统会将view看为完全不透明,这样绘图系统就可以优化一些绘制操作以提升性能。如果设置为NO,那么绘图系统结合其它内容来处理view。默认情况下,这个属性是YES。)如果屏幕是静止的,那么这个opaque属性的设置与否不是一个大问题。但是,如果view是嵌入到scroll view中的,或者是复杂动画的一部分,不将设置这个属性的话肯定会影响程序的性能!


三,高级的优化

1,滚动很快时,有针对地加载目标范围的cell,按需加载cell,也能提高流畅度

2,cell中涉及大量网络加载的图片,使用异步加载(这一点我们要感谢开发SDWebImage的大神)=。=

3,异步绘制,遇到复杂界面,遇到性能瓶颈时,可能是突破口。


个人日常积累记录,各位请轻喷!!

参考资料:

http://blog.csdn.net/wy10207010219/article/details/46712753

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 1.最常用的就是cell的重用, 注册重用标识符它的原理是,根据cell高度和tableView大小,确定界面上能...
    树下敲代码的超人阅读 5,092评论 4 26
  • 一、CPU 资源消耗原因和解决方案 1、对象创建,尽量使用轻量的对象代替重量的对象,例如用CALayer代替UIV...
    hanryChen阅读 685评论 0 1
  • 1. 最基本的:cell重用机制 2.当自定义不等高cell时,行高要提前计算好,或者先给个预估高度(一般为200...
    CoderXYF阅读 286评论 0 0
  • 不知道是不是我慢热,还是用了一个月来观察,反正公司终于开始“使用”我了。不像刚来的几天,我惶恐不安找不到事情做,甚...
    可爱的小小宏阅读 339评论 0 0
  • UIImageView的圆角: 产生离屏渲染的maskToBounds 添加maskView 生成一张圆角图片 D...
    少少白阅读 477评论 0 1

友情链接更多精彩内容