2015-11-16 5 views
5

私はカスタムキーボードを作っていますが、私は本当に奇妙な状況にあります。iOS:UIViewの特定の領域にtouchesBeganの遅延がある理由

私は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 
} 

この問題は私のアプリのパフォーマンスに影響します。 この例では、self.keypop.hiddenが表示されるのが遅れたため、左後部に触れたときにキーポップが表示されません。

私はなぜ知らない、またはこれは、iOS 9からのエラーですか? 私はこの問題に一週間悩まされてきました。

答えて

3

ここでの答えは、私たちのキーボードでも同じ問題が固定しているようだ:次のコードで

UISystemGateGestureRecognizer and delayed taps near bottom of screen

:私はCollectionViewでtouchBeganを使用していた私のような状況で

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 
} 
+0

これは動作しません –

+0

これは私の命を救った!私は時々画面の上部と下部で何かをする必要があるSpriteKitアプリでこの問題を抱えていましたが、それはいつも奇妙な動作をしていました。 – CodyMace

1

をし、 このコードを追加するだけで私と一緒に働いた

swi ft 3

self.view.delaysContentTouches = false 
関連する問題