UITableView优化

我们知道,常见的UITableView优化方法有:

1、使用reuse的方式,重用cell。

2、避免设置cell中控件中的alpha,clipToBounds等会触发离屏渲染的做法。

3、对于复杂的布局,可以启用异步线程使用CoreText、CoreGraphics进行绘制,然后再设置到主线程。

4、 对于需要从网络上下载图片的情况,进行异步加载和缓存,可以参考SDWebImage的做法。

除了这些之外:

5 、UITableView在加载的时候,会多次调用 tableView:heightForRowAtIndexPath: 方法。

1. 在tableView加载的时候会调用cell的个数次改方法,以计算整个tableView(也是UIScrollView)的contentSize。

2. 在某个cell即将要渲染到屏幕上的时候,也会调用改方法以确定该cell的高度。

而对于布局复杂的App,需要根据cell的内容来计算具体的高度,所以可以对高度进行缓存,避免重复计算高度。

6、预加载机制。采用RunLoop在App空闲的时候计算未加载的cell的高度。

7、从iOS8开始,iOS支持self-sizing。等到只需要最低支持iOS8的时候,可以采用self-sizing,同时支持autolayout和frame layout。

在这方面, 开源库 UITableView-FDTemplateLayoutCell 的做法值得借鉴。而该作者的这篇博客对此作了详细介绍。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容