总结了一下对tableView的性能优化,大体有如下几个部分,并不是太全面,但是基本上包含了大部分的影响cell的性能优化的部分
1.大家最先想到的就是cell的重用问题,这个也是导致tableView滑动卡顿的最主要的原因之一,重用cell,大家都知道,这里不再多做说明
2.再一个就是cell的行高问题,ios7之后就要设置预估行高来避免调用heightForRowAtIndexPath来计算行高,而且计算行高这里太多东西要讲,这里不详细说明,会单开一篇文章详细讲解行高的设置问题
3.下载图片使用SDWebImage来异步下载
4.cellForRowAtIndexPath里面不要做耗时操作
4.1 读取文件,写入文件,最好是放到子线程,或先读取好,在让tableView去显示
4.2 尽量少做计算,能不做就不做,或者先计算好,cellForRowAtIndexPath
只负责来显示
4.3 尽量不要去添加和移除view, 现将会用到的控件懒加载,要就显示,不要就隐藏
5.tableView滚动的时候,不要去做动画
6.cell里面的控件,约束最好不要使用remake,动态添加约束是比较耗性能的
7.cell里面的控件,背景最好是不透明的 (图层混合), view的背景颜色 clearColor 尽量少
8.图片圆角不要使用 layer.cornerRadius(设置圆角非常的好性能,会单开一篇文章详细说明)
9.图层最好不要使用阴影, 阴影会导致离屏渲染
10.异步绘制
11.栅格化
目前想到的只有这些,个人认为平时开发中最主要注意的还是重用,行高,动画,圆角这几个注意点,而且每个点都没有细讲,算是一个总结,关于行高问题和设置图片圆角我会另开文章详细讲解,其他的部分大家可以去百度了解.