2012-03-16 96 views
0

我有一個tableView,每行有四個圖,大約20行。 當我嘗試滾動表格時,我將移除現有圖形併爲每一行建立新圖形。滾動UITableView緩慢

此操作使表格視圖的滾動非常緩慢。 任何想法,使滾動更快,以及加載新的圖形。

+0

您的數據是否在滾動期間發生變化? – 2012-03-16 11:37:31

+0

是的,每行的數據都不相同。 – user676446 2012-03-16 12:04:03

+0

我的意思是數據是否更新爲同一個單元格(如果是這種情況,你真的需要重繪圖表)? – 2012-03-16 12:08:41

回答

1

創建新視圖是一項昂貴的操作。這就是爲什麼最好重用它們。您可以通過將現有視圖「出列」來回收。

此外看一看Table View Programming Guide for iOS

具體而言,看覆蓋優化技術,例如參見「子類的UITableViewCell」

只在適當的時候繪製整個單元格。您的子類 UITableViewCell可以在其drawRect:方法中繪製其所有內容, 但您應該意識到此方法的潛在缺陷。 自定義繪圖適用於單元格的圖層,該圖層可以被放置在其上的任何視圖遮擋。例如,在組合的 樣式的表視圖中,背景視圖(backgroundView屬性)遮蓋了在drawRect:中執行的任何 繪圖。藍色選擇背景 也會遮蓋任何圖形。此外,在 動畫中發生的自定義繪圖(例如當表格視圖進入和退出編輯模式時) 大幅降低了性能。

慢表滾動是一個常見問題,所以你可以在Stack Overflow上找到很多類似的問題。

要考慮的另一件事是您的提供數據的方法可能是瓶頸。儀器將能夠幫助您確定問題。