3

我正在尝试从 tableview 重新加载特定行,但 tableview 的 contentOffset 在重新加载后重置为 (0, 0)。我试图在 reloadRowsAtIndexPaths 周围添加[tableview beginUpdates][tableview endUpdates]周围,但没有改变行为。

问题在这里被问到调用 reloadRowsAtIndexPaths 删除 tableView contentOffset但它没有解决问题。我很确定动画与这种行为无关。我不确定如何在重新加载 tableview 行的同时维护 tableview 的内容偏移量。

[tableView reloadRowsAtIndexPaths:@[indexPath] withRowAnimation:UITableViewRowAnimationAutomatic];

4

2 回答 2

7

我猜你已经实现tableView:estimatedHeightForRowAtIndexPath:并让它返回 0。

之后reloadRowsAtIndexPaths:withRowAnimation:,tableView 使用 中给出的估计高度确定其偏移量tableView:estimatedHeightForRowAtIndexPath:。因此,除非您返回的值是准确的,否则执行它将导致您的 tableView 的偏移量在重新加载后发生变化。我有一个类似的问题,并通过删除我的tableView:estimatedHeightForRowAtIndexPath:.

于 2015-08-25T23:54:21.523 回答
2

如果您尚未实现任何估计高度委托方法,使用更准确的值更新estimatedRowHeight和也有助于缓解此问题。estimatedSectionHeaderHeight

您可以使用视图检查器来查找单元格和标题的高度。

于 2016-03-02T01:20:35.183 回答