要保证表格良好的性能体验,刷新帧率应该在 50 + 才可以
当一个表格内的计算程序在下一次刷新帧率前没有完成,就会造成跳帧,形成卡顿
也就是在两帧刷新之间,计算没有算完
要提高表格的性能,就要减少计算量,从而保证每一帧的计算完
为了提供表格性能,可以对Cell 栅格化,使用 离屛渲染
栅格化是把所有的内容生成一张图像,
在屏幕滚动时,只显示图像
在Cell 中使用
self.layer.shouldRasterize = YES;
// 栅格化,必须指定分辨率,否则使用 * 1 生成图像
self.layer.rasterizationScale = [UIScreen mainScreen].scale;
、、、、
3,异步绘制 ! 官方文档上说, 如果Cell 比较复杂, 可以使用 !
self.layser.drawAsynchronously = YES;
强烈建议使用
self.layer.shouldRasterize=YES;//栅格化
self.layer.rasterizationScale= [UIScreenmainScreen].scale;//指定分辨率
self.layer.drawsAsynchronously=YES;//异步绘制
注意,
1,行高一定要缓存 (不能动态计算行高)在 Cell 中计算行高
2,不要动态添加子视图
>1 所有子视图都要预先创建
>2 如果不需要设置为hidden
3,所有的子视图都应该添加到contentView 上
4,所有子视图都应该背景色
5,所有颜色都不要使用alpha
6,栅格化
7,异步绘制
性能优化第三方
https://github.com/forkingdog/UITableView-FDTemplateLayoutCell