IOS詳解TableView:效能最佳化及手工繪製UITableViewCell

來源:互聯網
上載者:User

提高表視圖的效能

UITableView作為應用中最常用的視圖,它的效能最佳化問題幾乎是經常提及 。下面對在非網路訪問情況下的表視圖效能最佳化進行了主要的幾點說明:

1.自訂類或XIB檔案 時

在系統提供的樣式不能滿足我們的時候,我們經常會建立自訂類或者XIB檔案來自訂單元 格樣式。

在之前,我們通常通過loadNib的方式或者在代理方法中繼續使用老的方法來設定重用 ,管理緩衝池。在IOS6以後,我們可以通過註冊的方式在註冊儲存格甚至表頭視圖,讓系統來更高效的 進行管理。

2.InterfaceBuilder

據說有很多偏執的工程獅們堅持手打代碼來完成工程,討厭拖拖拽拽。 不過隨著IB的不斷強大,已經有越來越多的人喜歡上了使用IB來建立和管理介面。在新的Xcode5中,IB 又進步了不少。回到正題,儘管如此,在使用高效能的Cell時,還是推薦使用代碼來建立儲存格類。當 UITableViewCell擁有多個子視圖時,IOS的渲染機制會拖慢速度。重寫drawRect直接繪製內容的方式可 以提高效能,而不是在類初始化的時候初始化一些label或者imageview等。

3.圖層顏色問題

透明圖層對渲染效能會有一定的影響,系統必須將透明圖層與下面的視圖混合起來計算顏色,並 繪製出來。減少透明圖層並使用不透明的圖層來替代它們,可以極大地提高渲染速度。

4.渲染中 注意的問題

繪製時要儘可能的避免分配資源,比如UIFont,NSDateFormatter或者任何在繪製時 需要的對象,推薦使用類層級的初始化方法中執行分配,並將其儲存為靜態變數。

5.為代理方法 瘦身

我們經常能看到在項目中,

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

這個方法中的代碼多的嚇人,我 們可以講一些資料繫結到cell中,或者在有多個tableview的時候,將其綁定到其他的 tableviewcontroller中去。這樣可以方便維護和管理,其實也對程式運行效能有很大的協助。

手工繪製儲存格

下面就繪製一個表視圖儲存格,並在表視圖中顯示。

相關文章

聯繫我們

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