我有一个tableview。当我拉起加载更多数据时,只要滚动条正在滚动,scrollToTop的方法就会停止tableview滚动而不是滚动到顶部,直到滚动停止。
所有其他情况都可以正常工作。
如何解决这个问题?感谢您的帮助。
scrollToTop 函数
func scrollToTop1(animated: Bool) {
tableView.scrollToRow(at: IndexPath(row: 0, section: 0), at: .top, animated: animated)
}
func scrollToTop2(animated: Bool) {
tableView.setContentOffset(CGPoint(x: 0, y: 0), animated: true)
}
尝试了以下方法:
没有效果
DispatchQueue.main.asyncAfter(deadline: .now() + .milliseconds(100)) {
scrollToTop()
}
没有效果
3.使用 beginUpdates() 和 endUpdates()
beginUpdates()
scrollToTop()
beginUpdates()
可以滚动到顶部,但是会有奇怪的闪烁
tableView.setContentOffset(CGPoint(x: 0, y: 0), animated: false)
可以滚动到顶部,但没有动画
答案 0 :(得分:0)
问题已经解决。严格来说,我的代码并不严谨。我写了一个方法来调用api获取数据。刷新和上拉加载都将访问相同的方法。
为了方便,不管是上拉加载还是下拉刷新都会执行UIRefreshControl.endRefreshing方法,导致这个奇怪的问题。
记录如上,希望对同样遇到这个奇怪问题的人有帮助