2009-08-27 81 views
2

我是iPhone開發新手。我正在處理包含複雜自定義單元格和多個子視圖和控件的表視圖(默認UITableView子類)。滾動不是很順利,但我現在就離開它。神祕的UITableView卡住問題

問題是,當我用快速滑動滾動表格視圖時,表格有時會突然停止滾動,並且滾動指示器不會消失,我必須再次滑動以使其滾動。

如果表格包含非常少的行,例如5或6,它就永遠不會卡住。我使用的自定義單元格類別來自此處提供的示例:http://blog.atebits.com/2008/12/fast-scrolling-in-tweetie-with-uitableview/

任何人都可以提供有關此問題的提示或解決方案嗎?提前致謝。

+1

這是發生在模擬器還是設備上?模擬器經常卡在表格視圖中。如果是設備,請忽略此評論;) – Jab 2009-08-27 19:15:55

+0

它發生在模擬器和設備上。在模擬器中,表格停止滾動,滾動條消失。在設備上,滾輪不會消失。 – 2009-08-28 16:53:59

回答

1
  1. 表格單元格僅在需要時創建,即當它們進入視圖時它們通常在卸下視圖時被卸載並釋放。
  2. 在您的單元格創建代碼中輸入NSLog(@"Cell loading");,並檢查控制檯以查看滾動時發生的情況。
  3. 您使用緩存嗎?該文檔演示瞭如何緩存表格單元以提高性能。當你創建table cells時,你還在做什麼?如果有任何性能下降,你應該在創建單元時不會發生這種情況。
  4. 我的工作是在表格加載之前生成我的所有內容,並且創建單元格時,將所有內容簡單地放入視圖中。
  5. 任何類型的繪圖都會極大地降低性能,特別是如果您使用透明度。
+0

感謝您提供有用的提示,但現在我不會在性能上多加註意。我想我通過使用由XCode生成的UITableViewController模板而不是定製的UIViewController來解決「滾動卡住」問題。已經測試了幾分鐘的不間斷滾動,並且滾動器從不停頓。 – 2009-08-28 16:47:47

0

我會看看你的cellForRowAtIndexPath方法 - 對於幾個可能的問題。

如果您沒有使用單元重用,這會減慢很多事情,並且您在cellForRowAtIndexPath委託方法中重新分配或重新初始化自定義單元,這可能會導致嚴重的性能問題。

如果您發佈您的代碼,我們可以給你一些提示,以瞭解可能導致它的原因。

+0

也許我的自定義UIViewController處理表委託方法有問題。無論如何,我(想)我通過使用由XCode生成的UITableViewController模板來解決問題。謝謝。 – 2009-08-28 16:54:56