在我的代码中,我覆盖了tableView:willDisplayCell
,当显示最后一行时,我开始加载更多数据。当这些数据进入时,我调用insertRowsAtIndexPaths
来添加行。
这通常有用(tableview的滚动位置不会改变),但是我注意到如果我过度滚动而不放手(滚动到tableview的末尾),tableview将跳转到顶部{{在数据加载时调用1}}。
我正在使用insertRowsAtIndexPaths
/ Autolayout来获取我的单元格高度,因为每个单元格根据它们包含的数据具有不同的高度。我该如何避免这个问题?理想情况下,如果数据加载并且tableview被过度滚动,则一旦数据进入,滚动位置将保持在过度滚动状态。
答案 0 :(得分:1)
您可以在底部单元格indexpath
上创建引用,无论哪个函数返回顶部,都可以调用
[self.tableView scrollToRowAtIndexPath:path atScrollPosition:UITableViewScrollPositionNone animated:YES];
SWIFT 3
self.tableView.scrollToRow(at: indexPath, at: UITableViewScrollPosition.none, animated: true)