iOS開發——實戰項目總結&UITableView效能最佳化技巧

來源:互聯網
上載者:User

標籤:

UITableView效能最佳化技巧

 

Table view需要有很好的滾動效能,不然使用者會在滾動過程中發現動畫的瑕疵。

為了保證table view平滑滾動,確保你採取了以下的措施:

  • 正確使用`reuseIdentifier`來重用cells
  • 盡量使所有的view opaque,包括cell自身
  • 避免漸層,圖片縮放,後台選人
  • 緩衝行高
  • 如果cell內現實的內容來自web,使用非同步載入,緩衝請求結果
  • 使用`shadowPath`來畫陰影
  • 減少subviews的數量
  • 盡量不適用`cellForRowAtIndexPath:`,如果你需要用到它,只用一次然後緩衝結果
  • 使用正確的資料結構來儲存資料
  • 使用`rowHeight`, `sectionFooterHeight` 和 `sectionHeaderHeight`來設定固定的高,不要請求delegate

 

  • 1.最常用的就是cell的重用, 註冊重用標識符

如果不重用cell時,每當一個cell顯示到螢幕上時,就會重新建立一個新的cell

如果有很多資料的時候,就會堆積很多cell。如果重用cell,為cell建立一個ID

每當需要顯示cell 的時候,都會先去緩衝池中尋找可迴圈利用的cell,如果沒有再重新建立cell

2.避免cell的重新布局

cell的布局填充等操作 比較耗時,一般建立時就布局好

如可以將cell單獨放到一個自訂類,初始化時就布局好

3.提前計算並緩衝cell的屬性及內容

當我們建立cell的資料來源方法時,編譯器並不是先建立cell 再定cell的高度

而是先根據內容一次確定每一個cell的高度,高度確定後,再建立要顯示的cell,滾動時,每當cell進入憑虛都會計算高度,提前估算高度告訴編譯器,編譯器知道高度後,緊接著就會建立cell,這時再調用高度的具體計算方法,這樣可以方式浪費時間去計算顯示以外的cell

4.減少cell中控制項的數量

盡量使cell得布局大致相同,不同風格的cell可以使用不用的重用標識符,初始化時添加控制項,

不適用的可以先隱藏

5.不要使用ClearColor,無背景色,透明度也不要設定為0

渲染耗時比較長

6.使用局部更新

如果只是更新某組的話,使用reloadSection進行局部更新

7.載入網路資料,下載圖片,使用非同步載入,並緩衝

8.少使用addView 給cell動態添加view

9.按需載入cell,cell滾動很快時,只載入範圍內的cell

10.不要實現無用的代理方法,tableView只遵守兩個協議

 

著作權聲明:歡迎轉載,請貼上源地址: http://www.cnblogs.com/iCocos/(iOS夢工廠)

 

更多精彩請關注github:https://github.com/al1020119?tab=repositories

iOS開發——實戰項目總結&UITableView效能最佳化技巧

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.