插入更多行时,UITableView会滚动到顶部

时间:2016-01-23 03:26:52

标签: ios swift uitableview uiscrollview autolayout

在我的代码中,我覆盖了tableView:willDisplayCell,当显示最后一行时,我开始加载更多数据。当这些数据进入时,我调用insertRowsAtIndexPaths来添加行。

这通常有用(tableview的滚动位置不会改变),但是我注意到如果我过度滚动而不放手(滚动到tableview的末尾),tableview将跳转到顶部{{在数据加载时调用1}}。

我正在使用insertRowsAtIndexPaths / Autolayout来获取我的单元格高度,因为每个单元格根据它们包含的数据具有不同的高度。我该如何避免这个问题?理想情况下,如果数据加载并且tableview被过度滚动,则一旦数据进入,滚动位置将保持在过度滚动状态。

1 个答案:

答案 0 :(得分:1)

您可以在底部单元格indexpath上创建引用,无论哪个函数返回顶部,都可以调用

[self.tableView scrollToRowAtIndexPath:path atScrollPosition:UITableViewScrollPositionNone animated:YES];

SWIFT 3

    self.tableView.scrollToRow(at: indexPath, at: UITableViewScrollPosition.none, animated: true)