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 的做法值得借鉴。而该作者的这篇博客对此作了详细介绍。

你可能感兴趣的:(UITableView优化)