UITableView:当 gestureRecognizers 激活时,scrollViewDidScroll 执行并且 contentOffset 跳转
UITableView: scrollViewDidScroll executes and contentOffset jumps when gestureRecognizers active
在 iOS 11 中的 UITableView
(在 ViewController
中)上使用 gestureRecognizers
(UIPanGestureRecognizer
和 UITapGestureRecognizer
)时(Xcode 9.0,Swift 4),即使点击或平移到 left/right(没有 tableView
实际滚动)和 contentOffset
在短时间内跳跃(在 iPhone X 上跳跃 -140,在 iPhone 8 上跳跃 -116),然后 returns 恢复正常。 contentOffset
跳转在 UI 中不可见,但可以在控制台中打印。 (并启动一个动画,我已将其与某个偏移量相关联)。禁用 gestureRecognizers
可以解决问题,但除了上下滚动之外,我还需要它们来做其他手势(例如点击、平移到 left/right、...)
此问题不会发生在较旧的固件上(已在 iOS 10.3.1 上测试)。 scrollViewDidScroll
函数也不执行,contentOffset
也不更改。
如果有任何提示,我将不胜感激。
我发现禁用选项 Adjust Scroll View Insets
(在 IB 或代码中),即使在一些类似的帖子中被标记为正确答案,也只是等式的一部分。
UITableView
上的一些约束没有正确设置,这导致了错误。
正确设置所有约束(或完全删除它们)并禁用上述选项为我修复它。
在 iOS 11 中的 UITableView
(在 ViewController
中)上使用 gestureRecognizers
(UIPanGestureRecognizer
和 UITapGestureRecognizer
)时(Xcode 9.0,Swift 4),即使点击或平移到 left/right(没有 tableView
实际滚动)和 contentOffset
在短时间内跳跃(在 iPhone X 上跳跃 -140,在 iPhone 8 上跳跃 -116),然后 returns 恢复正常。 contentOffset
跳转在 UI 中不可见,但可以在控制台中打印。 (并启动一个动画,我已将其与某个偏移量相关联)。禁用 gestureRecognizers
可以解决问题,但除了上下滚动之外,我还需要它们来做其他手势(例如点击、平移到 left/right、...)
此问题不会发生在较旧的固件上(已在 iOS 10.3.1 上测试)。 scrollViewDidScroll
函数也不执行,contentOffset
也不更改。
如果有任何提示,我将不胜感激。
我发现禁用选项 Adjust Scroll View Insets
(在 IB 或代码中),即使在一些类似的帖子中被标记为正确答案,也只是等式的一部分。
UITableView
上的一些约束没有正确设置,这导致了错误。
正确设置所有约束(或完全删除它们)并禁用上述选项为我修复它。