TableView的性能优化
- 使用不透明的视图,不透明的视图可以提高渲染的速度,可以将cell及其子视图的opaque(不透明度)设置为YES
- 不要重复创建不必要的cell,UITableView只需要一屏幕的UITableViewCell对象即可。
- 减少动画效果的使用,最好不要使用insertRowsAtIndexPaths:withRowAnimation方法,而是直接调用reloadData方法
- 减少视图的数目,UITableView的cell的contentView中默认包含了textLabel,detailTextLabel和imageView等View,当然我们也可以自定义一些视图放入cell的contentView里,但是这样会影响渲染的性能。
- cell包含较多的图片,使用自定义cell的速度会比使用默认的要快,继承自UITableViewCell,重写drawRect方法,当不需要与用户交互的时候,就使用CALayer,将内容绘制到Layer上,然后对cell的contentView.layer调用addSubLayer:方法。但是如果layer透明或者有圆角,变形等效果,就会影响绘制性能
- 预渲染图像,在图形上下文中画,导出成UIImage对象,然后再绘制到屏幕。
- 在请求数据的时候不要阻塞主线程,使用多线程去解决
- 提前计算并缓存好高度,因为heighForRowAtIndexPath调用非常频繁
- 当下载一些附件的时候,可以通过gzip/zip压缩后再下载,可以提高下载速度。