我正在制作一个自定义键盘,而且我的处境非常奇怪。
我注意到当我在UIView(inputView)的左后方(大约20个像素)处捕捉到事件触摸开始时,我在这里有一些延迟。 我在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的错误? 我已经被困在这个问题上一个星期。
答案 0 :(得分:6)
这里的答案似乎修复了我们键盘中的相同问题:
UISystemGateGestureRecognizer and delayed taps near bottom of screen
使用以下代码:
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
}
答案 1 :(得分:4)
在我的情况下,我在CollectionView中使用了touchBegan,当我点击时它延迟了触摸 它只需添加此代码即可与我合作
在斯威夫特,
self.collectionView.delaysContentTouches = false
/*delaysContentTouches applies to all UIScrollView instances.*/