UITableView:当gestureRecognizers处于活动状态时,scrollViewDidScroll执行并且contentOffset会跳转

时间:2017-10-02 09:55:33

标签: ios swift xcode uitableview ios11

在iOS 11(Xcode 9.0,Swift 4)的gestureRecognizersUIPanGestureRecognizer)之上使用UITapGestureRecognizerUITableViewViewController) ),即使点击或平移到左/右(没有scrollViewDidScroll实际滚动)和tableView跳跃(在iPhone X上按-140和-116),函数contentOffset也会自动执行在iPhone 8上短时间内,它恢复正常。 contentOffset跳转在UI中不可见,但可在控制台中打印。 (并启动一个我与某个偏移相关联的动画)。禁用gestureRecognizers可以解决问题,但我需要其他手势而不是上下滚动(例如点按,向左/向右平移,等等)

旧版固件(iOS 10.3.1上测试)不会出现此问题。 scrollViewDidScroll函数也不会执行,contentOffset也不会更改。

我非常感谢任何提示。

1 个答案:

答案 0 :(得分:0)

我发现禁用选项Adjust Scroll View Insets(在IB或代码中),即使在某些类似帖子上标记为正确答案,也只是等式的一部分。

UITableView上没有正确设置某些约束,导致错误。 正确地获取所有约束(或完全删除它们)并禁用上述选项为我修复了它。