具有自行调整大小的UITableView insertRowsAtIndexPaths更改contentOffset

时间:2016-05-05 16:00:03

标签: ios objective-c uitableview animation

我尝试构建一个talbleview,其中每一行都可以在点击时显示子列表。为此,我更新了Datamodel并调用

[self.tableView insertRowsAtIndexPaths:addedIndexPaths withRowAnimation:(UITableViewRowAnimationTop)];

动画在行可见时发生。 添加的单元格在动画后正确显示,但动画制作视图时有时会向上滚动。这种情况尤其发生在tableview的最后一部分。此表格视图总是在表格中向上滚动,直到插入单元格上方的单元格顶部可见。

我想在可见动画期间修复contentoffset。 我尝试在begin updatesend updates内设置上下文偏移量,但这不起作用,因为动画会向上滚动,您会看到内容滚动回原位。

我使用自动布局使单元格自我调整大小。

如何在插入可见单元格时保持tableview的内容偏移量不变?

1 个答案:

答案 0 :(得分:0)

我想出了这个问题。 自我调整是根本原因。

不要使用自我调整大小只需删除这些行:

tableView.estimatedRowHeight = 123

- (CGFloat)tableView:(UITableView *)tableView estimatedHeightForRowAtIndexPath:(NSIndexPath *)indexPath {