ios - 防止 UITableView 超出单元格绑定(bind) View 在 insertRowsAtIndexPaths : 上剪辑

标签 ios uitableview animation insert clip

这个视频 显示了在插入新单元格时, 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/

    相关文章:

    ios - 如何使从 View Controller 接收的字符串显示在另一个 View Controller 的 TableView 中

    swift - 访问字典键/值时出现模棱两可的错误

    ios - 每个循环后都有延迟的按钮图像阵列动画

    java - 动画缩放图片

    ios - 删除最后一个 UICollectionViewCell 时出现 NSRangeException

    ios - 从转换后的 json 字符串中删除\n 和斜杠\

    ios - 使用 Retina 显示屏将 Tile 转换为 CGPoint

    ios - 为什么不早点调用自定义CALayer的draw方法呢?

    swift - 我在滚动时更改了 UITableViewCell 不透明度,但用户交互有一两秒的延迟。我怎样才能解决这个问题?

    Android - 丰富的图形和动画