UITableView卡顿的优化

2020-11-19  本文已影响0人  萧哒哒

卡顿原因:

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.使用正确的数据结构来存储数据。



上一篇 下一篇

猜你喜欢

热点阅读