TableView的性能優(yōu)化
- 使用不透明的視圖胀蛮,不透明的視圖可以提高渲染的速度,可以將cell及其子視圖的opaque(不透明度)設置為YES
- 不要重復創(chuàng)建不必要的cell院刁,UITableView只需要一屏幕的UITableViewCell對象即可。
- 減少動畫效果的使用退腥,最好不要使用insertRowsAtIndexPaths:withRowAnimation方法,而是直接調(diào)用reloadData方法
- 減少視圖的數(shù)目再榄,UITableView的cell的contentView中默認包含了textLabel,detailTextLabel和imageView等View困鸥,當然我們也可以自定義一些視圖放入cell的contentView里嗅蔬,但是這樣會影響渲染的性能疾就。
- cell包含較多的圖片澜术,使用自定義cell的速度會比使用默認的要快猬腰,繼承自UITableViewCell鸟废,重寫drawRect方法姑荷,當不需要與用戶交互的時候盒延,就使用CALayer厢拭,將內(nèi)容繪制到Layer上,然后對cell的contentView.layer調(diào)用addSubLayer:方法撇叁。但是如果layer透明或者有圓角,變形等效果陨闹,就會影響繪制性能
- 預渲染圖像楞捂,在圖形上下文中畫,導出成UIImage對象寨闹,然后再繪制到屏幕。
- 在請求數(shù)據(jù)的時候不要阻塞主線程繁堡,使用多線程去解決
- 提前計算并緩存好高度沈善,因為heighForRowAtIndexPath調(diào)用非常頻繁
- 當下載一些附件的時候椭蹄,可以通過gzip/zip壓縮后再下載闻牡,可以提高下載速度绳矩。