UITableView 显示优化

今天被问到在UITableView的滑动过程中,怎么对其进行优化,使其不卡顿。

回答的时候有点仓促,感觉很多了解的东西没有说出来,总结下吧。

首先是,高度显示优化。

先用estimatedRowHeight这个属性,配合AutoLayout,设置rowHight = UITableViewAutomaticDimension,cell就变成自适应的高度。

同时,还可以 利用RunLoop空闲时间执行预缓存任务

上面的文章介绍了一种找到优化的合适方案:用RunLoopObserver 找到 kCFRunLoopDefaultMode 的空闲时间片来计算。

可优化地方:

  • 确保控件的opaque属性设置为true,确保backgroundColor和父视图颜色一致且不透明。

  • 如无特殊需要,不要设置低于1的alpha值。

  • 确保UIImage没有alpha通道。

避免临时转换

  • 确保图片大小和frame一致,不要在滑动时缩放图片。

  • 确保图片颜色格式被GPU支持,避免劳烦CPU转换。

慎用离屏渲染

    • 绝大多数时候离屏渲染会影响性能。

    • 重写drawRect方法,设置圆角、阴影、模糊效果,光栅化都会导致离屏渲染。

    • 设置阴影效果是加上阴影路径。

    • 滑动时若需要圆角效果,开启光栅化。

参考

① http://www.cocoachina.com/ios/20160208/15238.html

原文地址:https://www.cnblogs.com/loying/p/5160579.html