【发布时间】:2020-05-17 05:42:37
【问题描述】:
我根据 tableView 的内容偏移设置 UI 行为。它在所有情况下都能正常运行,除了一种情况:当 tableView 开始删除带有动画的行时。
问题是在删除前有很多内容,用户滚动了其中的一部分,但删除tableView后可以显示整个内容而无需滚动。在这种情况下,表格视图会在删除动画的同时平滑地更改内容偏移量。
造成我的问题的主要原因是在删除动画期间没有调用scrollView委托的方法scrollViewDidScroll,我的行为不起作用。
我尝试使用 KVO 来观察偏移变化:
observation = tableView.observe(\.contentOffset, options: [.new, .old]) { (_, change) in
print(change)
}
它工作得更好,但在第一时刻只触发一次并带有最终值,所以我没有收到任何中间值,我需要做出平滑的 UI 反应。
好的,我尝试使用 UIView.animate 和兄弟姐妹为我的行为设置动画。但是发现我的动画和tableview的偏移动画很难选择参数来同步。
那么,我错过了什么?在行删除动画期间是否可以观察到任何中间偏移值?
【问题讨论】:
标签: ios uitableview contentoffset