iOS应用程序的顶级UIView上安装的标准UISystemGestureGateGestureRecognizer是什么?
我的应用程序包含两个视图 – 一个填充屏幕的上半部分,另一个是自定义键盘,并填充下半部分.我发现空格键上的水龙头并不总是奏效,经过一番调查发现,最近20个像素左右的水龙头事件的时间与其余部分不同.对于大多数观点来说,touchesBegan / Ended之间的时间段约为100ms,而对于空格键为1-2ms. (我的应用程序是一个模拟器,这太快了,无法检测到按键).
经过一些挖掘,我发现了应用程序的主UIView(即:我的主视图的超级视图)已经安装了2个UISystemGestureGateGestureRecognizer.通过在ViewDidAppear中删除它们,屏幕底部不再受到影响. (推测这些是取消触摸按钮事件到我的键盘,因此更快的时间).
这些系统识别器至少在iOS 5到7以及iPad和iPhone上都有.我以为他们可能与顶部/底部滑动相关,但这个功能仍然可以与他们移除.
所以我有一个修复,但我想了解更多关于这里发生了什么 – 特别是我可能通过删除这些破坏.
解决方法
这个延迟的困扰也使我也困扰着我.
就像之前所说的一样,
这是一个简单的修复:
就像之前所说的一样,
这是一个简单的修复:
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 }