这个视频 显示了在插入新单元格时, View 延伸到单元格区域之外的单元格是如何被剪裁的:
https://dl.dropboxusercontent.com/u/22105205/CellClipping.mov
这个简单项目清楚地显示了问题,可用于快速原型(prototype)制作:
https://github.com/AndresCanella/iOSInsertCellClippingExample.git
可能是某种只使用单元格区域内的像素进行动画的优化?
一切都设置正确,稳定并且按预期工作,我们甚至没有在这个例子中使用特定的单元格数据:
[tableView beginUpdates];
self.cells++;
[tableView insertRowsAtIndexPaths:[NSArray arrayWithObject:indexPath] withRowAnimation:UITableViewRowAnimationRight];
[tableView endUpdates];
更新:
来自 DTS 的回应:
恐怕您在调用“insertRowsAtIndexPaths”时无法直接影响插入动画行为,无论您使用的是哪种“UITableViewRowAnimation”。单元格内容通常不会像那样重叠。 UITableView 在执行每个单元格的动画 block 时,只是尊重单元格的边界(不是扩展或重叠的内容)。
我的评论:
DTS 告诉我,事情可以做很多次,而且我总能找到解决方法。所以现在我正在寻找解决方法。
苹果错误报告 #17986466
最佳答案
在我看来,您希望不被剪裁的 View 超出了单元格本身的范围。对我来说,这意味着这些应该是表格 View 而不是单元格的 subview 。
如果确实如此,您可能希望使用普通的 UIScrollView 而不是 UITableView,并为向下插入的 View 下方的 View 设置动画。
关于ios - 防止 UITableView 超出单元格绑定(bind) View 在 insertRowsAtIndexPaths : 上剪辑,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25070490/