基础优化:
1.正确使用reuseIdentifier来重用Cells
2.尽量使所有的view 不透明,包括Cell自身 ,少用或不用透明图层
3.如果Cell内现实的内容来自web,使用异步加载,缓存请求结果
4.Cell中控件的层次越少越好,数量越少越好
5.在heightForRowAtIndexPath:中尽量不使用cellForRowAtIndexPath:,如果你需要用到它,只用一次然后缓存结果
6.不要动态创建控件,所有需要的控件提前准备好,在显示的时候根据数据隐藏/显示
7.控件上不要设置圆角半径,所有图像渲染的属性
8.缓存行高(注意使用缓存行高要去掉自动行高,可以保留预估行高)
高级优化
1.离屏渲染 - 异步绘制
self.layer.drawsAsynchronously = true
2.栅格化 - 异步绘制之后,生成一张独立的图像,cell在屏幕上滚动的时候,本质上滚动的是这张图片,cell 优化 尽量减少图层的数量,相当于只有一层,停止滚动之后,可以接收监听
self.layer.shouldRasterize = true
使用 ‘栅格化’ 必须指定分辨率
self.layer.rasterizationScale = UIScreen.main.scale
3.异步绘制,遇到复杂界面,遇到性能瓶颈时,就是突破口;
4.滑动时按需加载,这个在大量图片展示,网络加载的时候很管用!
网友评论