2013-05-19 68 views
0

我已經看到了我的表視圖非常奇怪的行爲: 我啓用了UITableViewEditingStyleDelete,它在編輯模式下在tableView左側顯示一個紅色的「 - 」控件。如果我點擊那個控件,右邊的刪除按鈕就會出現,並且「 - 」控件會被打開。一切正常,但如果我這樣做了幾次,有時「 - 」控件是水平的,但刪除按鈕是可見的: enter image description hereUITableView刪除控制和刪除按鈕未同步

這可能是刷新tableView?我應該在編輯模式下禁用它們嗎?

假如有人看到類似的東西或者有一個想法如何解決呢?

更新05/20/13: 我現在檢查每個NSFetchedResultControllerDelegate回調,如果我的tableView正在編輯,如果是,我不更新tableView,這將修復該錯誤。當tableView在正常模式下從編輯中返回時,我調用[tableView reloadData],以便tableView是最新的幷包含最新的信息。

但這破壞了動畫。有人有一個想法,我怎麼可以更新我的tableview而不失去動畫?問題是,tableView不知道在編輯模式下發生了什麼。

非常感謝您的幫助!

Linard

回答

0

動畫的損失是在編輯模式下停用更新的只是其中的一部分。另一件事是,如果你在編輯模式下添加或刪除一行,你必須實現[tableView reloadData]。 我認爲更好的解決方案是,通過NSFetchedResultController停用任何單元格內容更新。內容在我的表格中經常變化,但編輯單元格時並不那麼重要。如果表能夠添加或刪除任何未被停用的單元格,則tableView行和部分保持更新,以便您只需在編輯模式結束時更新行而不是使用[tableView reloadData]。 有了這個解決方案,你擁有所有的動畫,爲的tableView沒有其他更新代碼,而插入或刪除一行,並在編輯模式結束時,您有任何麻煩,以更新的tableView您CorePlot數據的狀態。

更新: 玩弄後,我看到,該錯誤出現,然後以同樣的方式之前,只是不經常。 我認爲問題是,[tableView beginUpdates]和[tableView endUpdates]之前被調用的方式相同,這可能會導致錯誤。 我沒有改變回[tableView reloadData],並且在編輯過程中我沒有停用任何更新,因爲那是我迄今發現的唯一方法,即使我失去了我的動畫(即使我失去了動畫)。

如果有人有一個額外的想法或一些改進,請讓我知道。

Linard