2012-02-29 39 views
3

在我的應用我有一個包含自定義UITableViewCells一個UITableView。滾動是非常緩慢和緩慢,我需要解決這個問題。的iOS的UITableViewCell優化

每個單元包含5-6個標籤,幾個按鈕,以及圖像。

我對細胞,其中I放置的按鈕,標籤和圖像視圖中的XIB,但我設置的所有圖像中的cellForRowAtIndexPath。加載我使用的圖像[UIImage imageNamed:@「」],我認爲這對於優化更好。我也是重用細胞。

我還發現,即使我註釋掉,不設置圖像,表仍然是laggy,只有文本設置標籤。

有沒有人對如何有同時還具有不錯的,流暢的性能相當複雜的表格單元格有什麼建議?是否將自定義單元格作爲xib阻礙性能?

+0

這將是有益的,看看你的'實現代碼如下:的cellForRowAtIndexPath:'執行。 – 2012-02-29 15:00:06

回答

9
  1. 確保您確實在重複使用單元格。請確保您使用的是電池 標識符的UITableViewCell 在Interface Builder的XIB設置。

  2. 使用較少的在你的子視圖的透明度。如果可能的話,進入你的標籤,並確保它們的背景與單元格的背景相匹配。

  3. 檢查未優化的代碼。例如,如果你顯示格式化的日期和正在創建的NSDateFormatter一個實例每次tableview:cellForRowAtIndexPath:被調用時,這真的會拖垮你的應用程序。

  4. 與時序和核心動畫模塊使用儀器尋找到你的大部分時間都花在。最終,這些可以揭示真正的性能問題所在。

+0

我實際上意識到我從來沒有設置在xib中標識的單元,所以一旦我沒有這個滾動圖像,現在非常流暢。我還將我的標籤設置爲純色並且不透明。就像我現在沒有加載1 UIImageView所說的那樣,單元格可以順暢地滾動,但是當我把圖像放回去時,它的滾動會有一點滯後,但不會像以前那麼大。謝謝! – RyanG 2012-02-29 15:27:21

+0

我也在計算我的cellForRowAtIndexPath中的一個日期:,我將移動它,並在加載表之前獲取這些日期。 – RyanG 2012-02-29 15:30:37

4

執行一個自定義UITableViewCell子類,並在一個不透明的UIView上自行繪製drawRect:

做它的方式加快滾動了很多。

+2

而不使用.xib – 2012-02-29 15:02:29

2

在IB中將一些屬性設置爲NO。

在滾動條,設置 「水平滾動」 爲NO。 聯繫,將「延遲內容觸摸」和「撤銷內容摩的」到NO

它將使平滑滾動找你的表視圖

+0

謝謝我將所有這些設置爲NO,它似乎有所幫助,謝謝! – RyanG 2012-02-29 15:36:26

+0

這個,沒有幫助我 – 2015-04-23 16:15:29