iOS_UITableView效能最佳化那點事,ios_uitableview

來源:互聯網
上載者:User

iOS_UITableView效能最佳化那點事,ios_uitableview

UITableView在實際開發中使用頻率實在是很高, 因此, UITableView的效能最佳化是必不可少的, 本文下面就略微總結一下UITableView效能最佳化那點事.

 

本文著重介紹具體方法, 原理的話在文章最後會給出一些連結, 有興趣可以自行查看.

 

1. 關於資料繫結

很多新加入iOS的朋友喜歡把資料繫結寫入在UITableView Data Source方法 

- (UITableViewCell *)cellForRowAtIndexPath:(NSIndexPath *)indexPath

裡面. 這並不是十分之準確的, 因為這時候的cell還沒有被實際產生, 試著把資料繫結寫在 

- (void)tableView:(UITableView *)tableView willDisplayCell:(UITableViewCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPath;

這個方法上, 因為這時候cell已經被建立而且正在準備顯示到介面上了.

 

2. 關於cell的重用.

cell的重用是蘋果官方就一再推薦的, 所以保證自己建立的cell是重用的會對效能提升有很大的協助.

 

3. 關於高度計算

高度計算的方法如果調用多次, 對效能損耗是肯定的. 當然如果你的高度是定死的話, 就不會出現這個問題. 如果不是的話, 那麼你可能需要自己設計一個方法, 把每個需要顯示的cell的高度先計算出來, 然後再設定cell高度的時候直接調用.

提供一個計算cell內容高度的方法(截取網上的):

然後高度設定可以在下面實現:

 

4. 關於AutoLayout

儘管蘋果官方推薦使用autoLayout進行程式開發, 但是autoLayout會帶來效能的一些損耗, 當然, 如果你的程式對效能要求不是很高的話, 用autoLayout進行開發也是很方便的.

 

5. 關於CPU和GPU的調度使用

各種透明度, 圓角等layer的屬性都會引起效能損耗.

所以, 可以試著不要直接設定圖片的圓角, 先非同步擷取圖片, 調用CoreGraphics 處理好圖片再返回

這樣你的圖片處理就交給了後台而不會影響到你程式的流暢性了

 

6. 關於其他最佳化方法

可以試著使用這個 https://github.com/facebook/AsyncDisplayKit 架構, 框架組成了大量非同步作業, 把UIView -> CALayer 轉變成 CAlayer -> Node, 這樣的輕量級控制項加上非同步作業, 會使你的程式效能更上一層樓.

 

 

附上一些連結:

1. http://blog.ibireme.com/2015/11/12/smooth_user_interfaces_for_ios/

2. http://southpeak.github.io/blog/2015/12/20/perfect-smooth-scrolling-in-uitableviews/

 

然後推薦幾個喜歡的技術部落格吧:

1. http://blog.ibireme.com

2. http://www.superqq.com

3. http://southpeak.github.io

4. http://www.cnblogs.com/dsxniubility

 

最後, 最近apple pay好像挺火的. 轉一篇之間的文章:

http://www.cnblogs.com/easyToCode/p/5196328.html

 

相關文章

聯繫我們

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