iOS效能優化 TableView

2021-07-14 16:40:57 字數 1419 閱讀 6865

下面介紹一些我們可以自己設定的新能優化!

1)盡量不透明的檢視

不透明檢視可以極大提高渲染的速度.因此如果可以,將 cell 及其子檢視的 opaque 屬性設定為 yes(預設值);

cell 的 backgroundcolor 的 apha 值應為1(不要使用 clearcolor),影象的 apha 值也應該為 1.

2)cell 重用機制

當 cell 不使用時,將其放入快取池,這樣不用頻繁地建立 cell.

**注意: cell 被重用時,它內部的內容並不會被自動清楚,可以手動呼叫 setneedsdisplayinrect: 或者 setneedsdisplay 方法.

3.在新增 cell 的時候,如果不需要動畫效果,不要使用 tableview insertrowsatindexpaths: withrowanimation: 方法,直接呼叫 reloaddata 方法.

原因:前者會對所有的 indexpaths執行,即使 cell 不需要顯示.這就可能同時創造大量並不需要的 cell(在模擬器上測試)

4.如果 cell 中較多,使用自定義 cell 好些,最佳解決方法是在自定義 cell 中,實現 - drawrect: 方法,繪製 . 同時設定 cell 的選中樣式 為 uitableviewcellselectionstylenone

5.更新資料,不要阻塞主線程

尤其是訪問網路資料,不要在主線程執行,而是在子執行緒執行資料的獲取更新等操作.

**注意: 子執行緒數量太多會影響主線程效能,因此 可以通過設定 nsoperationqueue 物件的 maxconcurrentoperationcount 的值來控制子執行緒資料.

在不需要處理使用者互動時,可以適當增加子執行緒資料,者可以通過在**方法中進行設定:

- (void)scrollviewdidenddragging:(uiscrollview *)scrollview willdecelerate:(bool)decelerate

}- (void)scrollviewwillbegindragging:(uiscrollview *)scrollview

6)自動載入更新資料的優化

- (void)tableview:(uitableview *)tableview willdisplaycell:(uitableviewcell *)cell forrowatindexpath:(nsindexpath *)indexpath 

}

nsarray *indexpaths = [self

.tableview indexpathsforvisiblerows];

for (nsindexpath *visibleindexpath in indexpaths)

}

TableVie優化方法和優化機制

1,uitableview的優化方法 快取高度,非同步繪製,減少層級,hide,避免離屏渲染 1 快取高度 當我們建立frame模型的時候,計算出來cell的高度的時候,我們可以將cell的高度快取到字典裡面,以cell的indexpath和identifier作為為key。非同步繪製 在cell上...

效能優化 iOS

如果需要更詳細的資訊,那就將dyld print statistics details設定為1 2.1關於dyld 用machoview 檢視載入過程如上圖 備註1 如果設定了 dyld print libraries,或者選中run diagnostics 下面的 dynamic library ...

iOS 效能優化收集

ios 效能除錯 instrument instrument之core animation工具 避免圖層混合 確保控制項的opaque屬性設定為true,確保backgroundcolor和父檢視顏色一致且不透明 如無特殊需要,不要設定低於1的alpha值 確保uiimage沒有alpha通道 避免...