TableView優化檢查清單

題圖
UITableView 幾乎是每個iOS開發者第一個使用的資料展示元件,在展示大量資料時,如果不組織好資料或檢視,會佔用大量記憶體,造成滾動卡頓,影響使用者體驗,本篇列舉出常見的優化點,供你開發時做檢查清單。
優化點1:cellForRowAtIndexPath
主要思路是減少cellForRowAtIndexPath 方法中的運算量,從以下方面檢查
1.1 載入圖片時,做非同步處理,載入完成後再單獨更新cell,不要用reloadData重新整理資料。
1.2 圖片有變換時,提前調整圖片尺寸,並做快取,重新整理時直接取快取圖片。
1.3 優先使用CALayer繪製Cell,避免繼承UITableViewCell,覆蓋drawRect,因為cell除了contentView外,還有其他檢視,會導致疊加運算。
1.4 複雜資料提前計算並快取。
優化點2:heightForRowAtIndexPath
主要思路是減少高度的計算時間,有以下方法:
2.1 如果都是固定cell高度,不要顯式實現代理 heightForRowAtIndexPath,使用 rowHeight屬性設定固定值。
2.2 非固定高度,提前計算並快取,重新整理時直接取快取高度值。
2.3 總是通過estimatedHeightForRowAtIndexPath 返回估計高度,避免非顯示cell請求高度。