This question already has answers here:
reloadData() of UITableView with Dynamic cell heights causes jumpy scrolling
(21个回答)
2年前关闭。
我需要扩展/折叠
除了一种情况,它工作正常。如果表格 View 一直向下滚动并且折叠后内容大小减小,则最终滚动超过最大偏移量。
现在,它并没有在动画中滚动,而是在那儿捕捉,这看起来很丑陋:
这是我尝试过的:
将
那没有帮助。 用完成块将
如何确保表格 View 不会跳转?
(21个回答)
2年前关闭。
我需要扩展/折叠
UITableView
的一部分。我可以通过调用reloadSections:withRowAnimation:
并从0
返回tableView:numberOfRowsInSection:
来实现(如果该节应该折叠的话)。除了一种情况,它工作正常。如果表格 View 一直向下滚动并且折叠后内容大小减小,则最终滚动超过最大偏移量。
现在,它并没有在动画中滚动,而是在那儿捕捉,这看起来很丑陋:
这是我尝试过的:
reloadSections:withRowAnimation:
包装在beginUpdates
/endUpdates
中:tableView.beginUpdates()
tableView.reloadSections(indexSet, withRowAnimation: .Automatic)
tableView.endUpdates()
那没有帮助。
reloadSections:withRowAnimation:
包装在CATransaction
中,计算其中的滚动距离并使用动画滚动表格 View :CATransaction.begin()
CATransaction.setCompletionBlock {
// tableView.contentSize is incorrect at this point
let newContentOffset = ... // calculated value is not correct
tableView.setContentOffset(newContentOffset, animated: true)
}
tableView.beginUpdates()
tableView.reloadSections(indexSet, withRowAnimation: .Automatic)
tableView.endUpdates()
CATransaction.commit()
如何确保表格 View 不会跳转?
最佳答案
在可折叠部分中使用自定义 header 时,我遇到了这个问题。我确实通过实现解决了这个问题。
func tableView(_ tableView: UITableView, estimatedHeightForRowAt indexPath: IndexPath) -> CGFloat
关于ios - UITableView在调用reloadSections :withRowAnimation:之后跳转,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/34925518/
10-13 09:25