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

iOS:为什么ToucheSStart在UIView中的某些特定区域有一些延迟,ios,swift,delay,touchesbegan,Ios,Swift,Delay,Touchesbegan,我正在做一个定制键盘,我的处境非常奇怪 我注意到,当我捕捉到从UIView(inputView)的左后方(大约20像素)开始的事件触摸时,这里会有一些延迟。 我在ToucheSBegind中执行的任何操作都将比其他区域执行的慢 override func touchesBegan(touches: Set<UITouch>, withEvent event: UIEvent?) { self.keypop.hidden = false } override func touches

我正在做一个定制键盘,我的处境非常奇怪

我注意到,当我捕捉到从UIView(inputView)的左后方(大约20像素)开始的事件触摸时,这里会有一些延迟。 我在ToucheSBegind中执行的任何操作都将比其他区域执行的慢

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
}
覆盖函数触摸开始(触摸:设置,withEvent事件:UIEvent?)
{
self.keypop.hidden=false
}
覆盖func touchesEnded(触摸:设置,withEvent事件:UIEvent?){
{
self.keypop.hidden=true
}
这个问题会影响我的应用程序的性能。 在本例中,当我触摸左后侧时,我将看不到keypop出现,因为
self.keypop.hidden
延迟显示

我不知道为什么,或者这是iOS 9的错误?
这个问题困扰了我一个星期。

这里的答案似乎解决了我们键盘上的同一个问题:

使用以下代码:

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中使用TouchStart,当我点击时它会延迟触摸 通过简单地添加此代码,它就可以与我一起工作

以迅捷的速度

self.collectionView.delaysContentTouches = false
/*delaysContentTouches applies to all UIScrollView instances.*/

这救了我的命!我在SpriteKit应用程序中遇到这个问题已经有一段时间了,我有时需要在屏幕的顶部和底部做一些事情,但它总是有奇怪的行为。这是可行的,但如果你使用手势识别器,它们似乎就可以正常工作。对我来说(一款SpriteKit游戏,我想触屏工作),我使用了最短持续时间设置为0的长按,并在state.start.technology上触发