阅读 107

UITableView卡顿的优化

卡顿原因:

1.cell复用,注册重用标识符

2.避免cell重新布局(创建时就布局好)

3.提前计算并缓存cell的属性及内容(高度)

cell的显示是先计算高度调用(height方法),然后再调用(cel lfor row)方法

4.减少cell中控件的数量

尽量时cell布局相同,不适用的先隐藏

5.不要使用clearcolor,无背景色,透明度不设置为0(渲染耗时比较长)

6.使用局部更新

如果只更新某组,使用reloadSection进行局部更

7.加载网络数据图片,使用异步并缓存

8..少使用addView 给cell动态添加view

9.当cell滚动很快时,只记载范围内的cell

10.不实现无用的代理方式

11.缓存行高:estimatedHeightForRow不能和HeightForRow里面的layoutIfNeed同时存在,这两者同时存在才会出现“窜动”的bug。所以我的建议是:只要是固定行高就写预估行高来减少行高调用次数提升性能。如果是动态行高就不要写预估方法了,用一个行高的缓存字典来减少代码的调用次数即可

12.不做多余的绘制,在实现drawRect:的时候,它的rect参数就是需要绘制的区域,这个区域之外的不需要进行绘制。

13.预渲染图像。当新的图像出现时,仍然会有短暂的停顿现象。解决的办法就是在bitmap context里先将其画一遍,导出成UIImage对象,然后再绘制到屏幕;

14.使用正确的数据结构来存储数据。



作者:萧哒哒

原文链接:https://www.jianshu.com/p/5657cebc7a8b

文章分类
后端
版权声明:本站是系统测试站点,无实际运营。本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 XXXXXXo@163.com 举报,一经查实,本站将立刻删除。
相关推荐