iOS-UITableView性能优化

作者: 简鱼7819 | 来源:发表于2017-10-26 17:57 被阅读46次

    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

    相关文章

      网友评论

      本文标题:iOS-UITableView性能优化

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