iOS:为什么touchesBegan在UIView的某些特定区域有一些延迟

我正在制作一个自定义的键盘,我处于一个非常奇怪的情况。

我注意到,当我在UIView(inputView)的左后方(约20像素)捕捉事件touchesBegan时,我会在这里有一些延迟。 我在touchesBegan做的任何动作都会比其他区域慢。

override func touchesBegan(touches: Set<UITouch>, withEvent event: UIEvent?) { self.keypop.hidden = false } override func touchesEnded(touches: Set<UITouch>, withEvent event: UIEvent?) { { self.keypop.hidden = true } 

而这个麻烦影响我的应用程序的性能。 在这个例子中,当我触摸左后方时,我不会看到keypop出现,因为self.keypop.hidden被延迟显示。

我不知道为什么,或者这是从iOS 9的错误? 我一直困在这个麻烦了一个星期。

这里的答案似乎已经解决了我们的键盘相同的问题:

UISystemGateGestureRecognizer和延迟接近屏幕底部的水龙头

用下面的代码:

 override func viewDidAppear(animated: Bool) { let window = view.window! let gr0 = window.gestureRecognizers![0] as UIGestureRecognizer let gr1 = window.gestureRecognizers![1] as UIGestureRecognizer gr0.delaysTouchesBegan = false gr1.delaysTouchesBegan = false } 

在我的情况下,我在一个CollectionView中使用了touchBegan,当我点击它的时候拖延了触摸它只是简单地添加了这个代码

在迅速3

  self.view.delaysContentTouches = false