2017-11-09 8 views
2

私のアプリケーション上ですべてのダブルフィンガースワイプダウンジェスチャーを検出しようとしています。すべてのアプリケーションに対してジェスチャーを検出

私は、Windowクラスを拡張し、これを追加しました:それはほとんどどこにでもなく、ScrollViewsに取り組んでいます

public extension UIWindow { 

    func initGestureTouch() { 
     let swipeDown = UISwipeGestureRecognizer(target: self, action: #selector(handleGesture)) 
     swipeDown.direction = .down 
     swipeDown.numberOfTouchesRequired = 2 
     self.addGestureRecognizer(swipeDown) 
    } 
} 

(、TableViewsなど)。このビューでは、スクロールビューだけがジェスチャーを取得します。

これを行う方法はありますか?これは、ヘルパーアシスタントを開くために使用される特別なジェスチャです。

Ps:今まで私が見つけた唯一の方法は、すべてのスクロールビューにダブルジェスチャ検出を追加することでしたが、それだけでは十分ではありません。

+1

フルコードを書くことができますか、どのようにWindowクラスを拡張しますか? – Jack

+0

質問を編集しました。だからappDelegate(didFinishLauching ...)私はこれを追加:self.window?.initGestureTouch() –

答えて

0

これを試してみてください:

swipeDown.cancelsTouchesInView = True 
swipeDown.delaysTouchesBegan = True 

タッチを意味します最初は、認識された場合、以下のビューに送信されません。 タッチを送信すると秒が遅れます。

+0

残念ながらそれは働かなかった –

関連する問題