iOS TableView的效能最佳化

來源:互聯網
上載者:User

TableView 在 IOS App中應用極其廣泛。

TableView能表現的內容也很豐富多樣。因此TableView的效能最佳化,對我們App的使用者體驗很重要。

首先,UITableView 為了效能的最佳化,使用了複用Cell的機制。

TableViewCell的複用機制的基礎在於為TableViewCell 設定複用標示, reuserIdentifier.

TableView 存在兩個隊列: 可見Cell visiableCells 和 可重用的Cell reusableCell。

當初次建立TableView時,比如可見Cell為10個。則,建立10個Cell 載入到可見數組中。隨著介面的滑動,Cell滑出介面,則將其從可見數組中移除,將其添加至可複用的數組中。新的Cell滑入介面內時,則先查看可重用的數組中是否存在Cell。若存在,則使用可重用的Cell,並載入資料。

有了複用機制,可以大大減少記憶體的開銷。


TableView的效能最佳化:

1. Cell的構建: 如果原生態的UITableViewCell 能夠滿足介面的需求,就使用原生態的Cell。不需要再自訂Cell。

 如果原生態的UITableViewCell 不能夠滿足需求,則需要考慮自訂Cell。

 自訂Cell的時候,使用不透明視圖。

Cell中減少視圖的數量,減少不必要的繪製。

 Cell中元素豐富時,可以考慮代碼繪製drawRect,而不是載入Xib。

可以根據內容,事先將高度緩衝下來。不要在計算高度的函數裡做過多的處理。盡量使取得高度的方法的時間複雜度為O(1)。

2. TableView 中圖片載入邏輯的最佳化:

  a. 當 使用者手動drag table view 的時候, 會載入cell中的圖片。

  b. 當使用者快速滑動的減速過程中,不載入過程中cell中的圖片(但文字資訊還是會被載入,只是減少減速過程中的網路開銷和圖片載入的開銷)

  c. 在減速結束後,載入所有可見cell的圖片(如果需要的話)。



未完待續。。。

  

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.