摘要: 在編輯模式下,我在表視圖中使用自定義編輯控件刪除行,而不是默認的紅色減號和刪除確認按鈕。勾選一行或多行,然後點擊工具欄中的刪除按鈕。它與郵件應用中看到的行爲類似。請參閱下面的截圖。不規則動畫
問題: 通過調用所生成到deleteRowsAtIndexPaths:withRowAnimation:
的動畫是不規則的。例如,這裏就是發生在我使用下排動畫(即UITableViewRowAnimationBottom
)刪除選中行(主題#7)中的截圖:
- 主題#8幻燈片下面和後面的主題#7
- 受試者#8簡要地隱藏在對象#7
- 受試者#8替換對象#7刺耳
這兩者上模擬器和設備上發生。自動動畫類型(即UITableViewRowAnimationAutomatic
)在刪除上述主題#7時會產生相同的不規則行爲。
Top動畫類型在模擬器中按預期工作,但會在設備上產生不一致的動畫動畫。
淡入淡出類型動畫是在模擬器和設備上按預期工作的唯一動畫。
詳細:
我針對的iOS 7,並用故事板,純自動佈局和核心數據。
這裏的操作方法,我刪除行:
- (void)deleteButtonTapped:(UIBarButton *)sender
{
// update table view's data
[self.listOfItems removeObjectsAtIndexes:self.indexSetOfTickedRows];
// create index paths for ticked rows
NSMutableArray *indexPaths = [[NSMutableArray alloc] init];
[self.indexSetOfTickedRows enumerateIndexesUsingBlock:^(NSUInteger idx, BOOL *stop) {
[indexPaths addObject:[NSIndexPath indexPathForRow:idx inSection:0]];
}];
[self.tableView deleteRowsAtIndexPaths:indexPaths withRowAnimation:UITableViewRowAnimationBottom];
// update Core Data and UI...
}
我曾嘗試:
表格單元格子類覆蓋layoutSubviews
。然而,即使當我評論出layoutSubviews
時,不規則的動畫仍然存在。
我還從表格單元格中刪除了自定義可tickable編輯控件,然後對操作方法中特定行的刪除進行硬編碼。不規則的動畫持續存在。
正如其他人所建議的,我試過在致電beginUpdates
和endUpdates
之間撥打deleteRowsAtIndexPaths:withRowAnimation:
。這不能解決問題。
有關下一步做什麼的建議,或者最好的猜測爲什麼我看到這些不規則的動畫?
更新(的iOS 7.1):
問題仍然瞄準的iOS 7.1之後。將繼續依賴淡入淡出動畫。
我有類似的問題,我得到奇怪的動畫,其中分隔線向一個方向移動,另一個單元格內容。我再次使用純自動佈局和iOS7。似乎對我來說越野車。 – Camsoft
線程未正確完成時,我看到了這種行爲。那將是我看起來的第一個地方。 –
你不需要調用'begin'和'end'更新嗎? – Remover