我有类似的问题(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