touchesBegan:withEvent: "在屏幕的左边缘被延迟。[英] `touchesBegan:withEvent:` is delayed at left edge of screen

本文是小编为大家收集整理的关于touchesBegan:withEvent: "在屏幕的左边缘被延迟。的处理方法,想解了touchesBegan:withEvent: "在屏幕的左边缘被延迟。的问题怎么解决?touchesBegan:withEvent: "在屏幕的左边缘被延迟。问题的解决办法?那么可以参考本文帮助大家快速定位并解决问题。

问题描述

我遇到了一个问题,当您触摸屏幕的左边缘时,第一次调用 UIView 或 UIViewController 上的 touchesBegan:withEvent: 会延迟.这似乎是 iOS 10 的一个新问题,并且只发生在配备 3D Touch 的设备(iPhone 6s 和更新版本)上.事实上,如果您在 General->Accessibility 中禁用 3D Touch,问题就会消失.

但是,当您使用 UIGestureRecognizers 时,该问题似乎不会发生.我目前的解决方法是创建一个 UIGestureRecognizer 子类来覆盖 touches* 方法并将它们转发到我的旧实现.

这只是一个错误还是有办法摆脱延迟?

推荐答案

尝试将此添加到 viewdidappear 方法中.这可能会解决问题.它也发生在我身上,但我从堆栈溢出中得到了这段代码,解决了我的问题.希望对你也有帮助

let window = view.window!
let gr0 = window.gestureRecognizers![0] as UIGestureRecognizer
let gr1 = window.gestureRecognizers![1] as UIGestureRecognizer
gr0.delaysTouchesBegan = false
gr1.delaysTouchesBegan = false

本文地址:https://www.itbaoku.cn/post/924349.html