我有類似的問題(iOS 8的,iPhone 6模擬器)
在我的情況,我不得不含有DatePicker
自定義單元格被插入/刪除任一Right Detail
式小區之間或Right Detail
風格細胞和區段之間如預期的那樣工作。
[self.table beginUpdates];
if (isVisible) {
[self.table insertRowsAtIndexPaths:@[index]
withRowAnimation:UITableViewRowAnimationMiddle];
} else {
[self.table deleteRowsAtIndexPaths:@[index]
withRowAnimation:UITableViewRowAnimationMiddle];
}
[self.table endUpdates];
但我也有被插入/ A Right Detail
風格的單元格和節結束,因爲使用相同的代碼預期沒有工作之間刪除Right Detail
風格的單元格。出現/消失的細胞在上方/通過上方的細胞可見,並且細胞移動了應有的兩倍。在下面的圖片中,People出現在Privacy,mid-animation下面。
然而,我注意到,當beginUpdates/endUpdates被註釋掉,細胞只移動了半個單元高度,而不是兩次細胞高度意味着它看起來很大提高。
我也試過設置zPosition,它在細胞重疊時似乎減少了可視性。
// [self.table beginUpdates];
if (isVisible) {
[self.table insertRowsAtIndexPaths:@[index]
withRowAnimation:UITableViewRowAnimationMiddle];
} else {
cell = [self.table cellForRowAtIndexPath:peopleIndex];
cell.layer.zPosition = -1;
[self.table deleteRowsAtIndexPaths:@[peopleIndex]
withRowAnimation:UITableViewRowAnimationMiddle];
}
// [self.table endUpdates];
當動畫結束時,所有表格單元格都應該是?僅僅是動畫本身的問題? – bilobatum
另外,您傳遞給deleteRowsAtIndexPaths:withRowAnimation的動畫類型:例如自動,底部,頂部等? – bilobatum
當動畫完成時,一切都很好,UI看起來應該如此。 我試過所有動畫類型,它們都產生相同的結果。 – brandontreb