避免滑动时加工数据
网络接口回来的数据有时需要进行字符串拼接、时间格式转换等销毁CPU的操作。这种场景可以在后台线程进行数据加工,然后将加工后的数据存放到ViewModel。当列表滑动的时候,不需要在单独做计算。
计算高度耗时较长时,将高度进行缓存
建议使用”UITableView+FDTemplateLayoutCell“。
使用Cell的复用机制
此处不需要解释
复用Cell内的子视图
有些开发者确实是使用了cell的复用机制,但是每次复用时由于子视图有一些差异,会把Cell里子视图释放掉,再重新初始化需要的子视图。这种做法是非常消耗CPU的,子视图也要尽量复用。
使用隐藏而不是移除
移除一个子视图也是需要开销的。如果有一些子视图不需要显示,将其隐藏而不是移除。
到后台线程销毁视图
有大量视图需要销毁时,放到后台线程,减少主线程的资源消耗。
图片尺寸不要大于需要显示的布局
到后台线程图片解码
加载图片时,图片的解码需要消耗CPU的资源,而这部分是可以放到子线程处理的。(SDWebImage默认是在子线程解码的,除非你关了)
到后台线程图片绘制
CoreGraphic是线程安全的,使用CoreGraphic绘制图片可以在子线程做,绘制完再回主线程加载到要呈现的控件里
减少透明视图的混合
设置视图的opaque属性为True,减少视图的混合消耗GPU资源
手动计算布局,并缓存
特别复杂的Cell,Autolayout的布局消耗大量CPU资源。可以根据数据源手动计算frame并进行缓存,从而避免每次都重新计算布局。