我在遇到一个问题,即当您触摸屏幕左边缘时,第一次调用touchesBegan:withEvent:
时UIView
或UIViewController
会延迟。这似乎是iOS 10的一个新问题,并且只发生在使用3D Touch(iPhone 6s和更新版本)的设备上。事实上,如果您在“常规” - >“辅助功能”中禁用3D Touch,问题就会消失。`touchesBegan:withEvent:`在屏幕左边缘延迟了
但是,当您使用UIGestureRecognizers
时,问题似乎不会发生。我目前的解决方法是创建一个覆盖touches*
方法的UIGestureRecognizer
子类,并将它们转发给我的旧实现。
这只是一个错误,或者有没有办法摆脱延迟?
嗯我看到,将如何解决眼前的问题,但与系统手势识别搞乱好像它会导致更多的问题上下行 – Jayson
我没有更多的一些调查,这似乎是目前最佳的解决方案。 这些手势识别器是'_UISystemGestureGateGestureRecognizer'的实例,似乎主要用于确保您的应用与系统手势(如控制中心或3D触摸应用切换)更好地交互。对于左边缘,我认为延迟是为了防止用户在尝试切换应用程序时意外的应用程序交互而产生的,但在我的情况下,我需要在左侧边缘进行响应式触摸,并且在用户尝试切换应用程序时触摸触发。 – Jayson