tableView優化思路
阿新 • • 發佈:2017-12-06
重疊 out ask named 高度 sub run format 創建
一般優化的思路:
-
提前計算並緩存好高度(布局),因為heightForRowAtIndexPath:是調用最頻繁的方法。
-
復雜界面可采用異步繪制。
-
在大量圖片展示時,可以滑動時按需加載。
-
盡量少用或不用透明圖層,多個透明元素重疊顯示可采用合並成一張圖片顯示。
-
減少subviews的數量,如果是不需要交互可以使用CALayer 替換掉 UIView。
-
在
heightForRowAtIndexPath:
中盡量不使用cellForRowAtIndexPath:
。 -
根據場景合理使用imageWithContentsOfFile和imageNamed。
-
頁面元素多的時候,減少autolayout布局,采用frame。
-
緩存NSDateFormatter結果,不多次創建,及時釋放。
-
圖片解碼時,CALayer 被提交到 GPU 前,CGImage 中的數據才會得到解碼,GPU執行,卡主線程。常見的做法是在後臺線程先把圖片繪制到 CGBitmapContext 中,然後從 Bitmap 直接創建圖片。
-
CALayer 的 border、圓角、陰影、遮罩(mask)觸發的離屏渲染,可開啟CALayer.shouldRasterize ,轉嫁到CPU上或是截圖或者采用圖片實現。
-
使用RunLoop和多線程在閑時處理一些繁重的計算工作。
tableView優化思路