tableView 的性能优化总结:
1、cell重用:1.所有的UI 都要提前创建好,不要一边滚动一边创建
2.所有的数据都要提前准备好,不要一边滚动一边处理数据
2、缓存行高:1.提前将 cell 的高度计算好,
不缓存行高有两种方式:
1.自适应行高 :
tableView.estimatedRowHeight = 200
tableView.rowHeight = UITableViewAutomaticDimension
2.实现rowHeight代理方法
3、cell 里的控件越少越好(这个不太好控制,根据项目需求),和cell 的复杂程度有关
4、不要使用半透明(alpha,opaque)、或者直接操作 layer 的圆角(这里我写了一篇关于设置圆角头像不消耗性能的博客)、阴影,
那样会影响 CPU 的使用
5、图片资源的大小尽量和控件的大小保持一致
6、能够绘制的尽量绘制,绘制是底层的东西,效率比较高;可以使用第三方框架 YYKit,重写了相当一部分UI文本的控件
7、layer 的异步绘制
8、cell 的栅格化