2011-12-13 122 views
1

我已經實現了一個帶有節點標題的tableView,它可以在點擊時展開單元格。這對在節頭非常簡單,只是一個大按鈕,按下它時,我計算出哪些細胞需要刪除,然後調用:SectionHeader打開/關閉動畫

[tableView beginUpdates]; 
//delete necessary cells 
[tableView endUpdates]; 

我的問題就出在這個動畫。當您打開一個部分,然後打開另一個部分或關閉同一個部分而無需滾動tableView時,它工作正常。但是,如果你最終滾動表格視圖,然後你打開另一個視圖,就會發生一件非常奇怪的事情。部分標題之一滑動到屏幕底部,然後回到原來的位置。對於動畫,我只需調用deleteRowsAtIndexPathsWithAnimation以及具有自動tableView動畫類型的相反插入方法。有人知道爲什麼會發生這種情況嗎?

有一個蘋果示例代碼,名爲TVAnimationsGestures(它出現了,如果你只是搜索tableview),它和我的程序一樣。如果你想深入瞭解代碼和問題,你應該檢查一下。

感謝,

+0

我不知道它爲什麼會發生,但我想這與節標題的行爲有關。請注意,當您滾動時,部分標題傾向於在屏幕的頂部或底部「收集」,以替換爲下一部分的標題?這可能會導致你的表格視圖失真。 – gurooj

+0

感謝gurooj,我想你可能會做點什麼。雖然我發現奇怪的是它只發生在tableview從原來的位置移動時。 –

+0

這必須在調用節標題的特殊動畫時使用。 – gurooj

回答

0

有一件事要檢查是不是你在numberOfSectionInTableView和numberOfRowsInSection返回值。

我覺得當tableview必須滾動它時會調用這些方法,所以如果你在返回tableView中的行數不匹配時會發生奇怪的事情。

所以,只要確保當你刪除一行,你也更新了返回部分的行數。

+0

感謝您的想法,但這不是問題,因爲我相信我已經正確處理了這個問題。 –