iOS アプリUISystemGestureGateGestureRecognizers
の最上位にインストールされる標準は何ですか?UIView
私のアプリは 2 つのビューで構成されています。1 つは画面の上半分を埋め、もう 1 つはカスタム キーボードで下半分を埋めます。スペース バーのタップが常に機能するとは限らず、いくつかの調査の結果、下部 20 ピクセル程度のタップ イベントのタイミングがビューの残りの部分と異なることがわかりました。ほとんどのビューでは、touchesBegan/Ended の間の期間は約 100 ミリ秒でしたが、スペース バーについては 1 ~ 2 ミリ秒でした。(私のアプリはエミュレーターであり、これは速すぎてキーの押下を検出できません)。
さらに掘り下げた後UIView
、アプリケーションのメイン(つまり、メインビューのスーパービュー)に 2 がUISystemGestureGateGestureRecognizer
インストールされていることがわかりました。画面の下部にあるそれらを削除するとViewDidAppear
、影響を受けなくなります。(おそらく、これらはキーボードへのタッチプレスイベントをキャンセルしているため、タイミングが速くなります)。
これらのシステム レコグナイザーは、少なくとも iOS 5 から 7 および iPad と iPhone の両方に存在します。上/下からのスワイプに関連している可能性があると思いましたが、この機能はそれらを削除しても機能します。
だから私は修正しましたが、ここで何が起こっているのか、特にこれらを削除することで何が壊れているのかをもっと理解したいと思います.