优化一、Cell重用
优化二、预先计算并缓存行高
TableView会先通过预估高度处理全部数据,可以先给TableView高度设置一个粗略的行高,cell创建之后再去获取真实的高度,而且只处理屏幕能看到的cell,显著提高加载的性能
优化三、减少Subviews层级、异步绘制、使用hidden隐藏图层
1、View的层级越复杂,对性能影响越大,尽量减少cell上View的层级
2、图片异步加载并及时释放内存,cell类中添加图片尽量避免使用imageWithName:方法,该方法会将图片缓存到内存中,应该使用imageWithContensOfFile:方法替换,该方法在图片使用后系统会自动释放资源.
imageWithContentsOfFile::不会将图片缓存起来,使用场景是不需要重用,加载很多的图片并且使用一次.
3、避免动态添加图层,在初始化cell的时候,图层要预先创建好,通过hidden去显示隐藏
4、圆角的优化,可以通过贝塞尔曲线+coreGraphics,或者贝塞尔曲线+CAShapeLayer设置圆角
5、图片阴影可以使用shadowPath避免离屏渲染
优化四、分页加载数据,预先异步请求数据
优化五、快速滑动TableView时,按需加载内容
优化六、在willDisplayCell:forRowAtIndexPath:代理方法中给cell绑定数据
在cellForRowAtIndexPath方法中绑定数据,cell其实还未显示,该方法有大量的布局绘制操作,只能将要显示的cell绑定数据就行.
优化七、避免离屏渲染
下面情况会导致离屏渲染:设置mask遮盖,设置 layer.masksToBounds/view.clipsToBounds属性为True,设置 layer.allowsGroupOpacity的属性为True,设置阴影,光栅化
网友评论