2017-02-15 7 views
1

にサブビュー上/インターセプトスワイプを無視します。そのビューコントローラの中で、私はいくつかのユーザーとの対話を処理/一部のコンテンツを表示するには、別のカスタムUIViewのを組み込みました。私は現在、カスタムビューコントローラ上で実行されている(iOS用)単一のページ迅速なアプリケーションを持って迅速

カスタムビューコントローラに登録されているUISwipeを、傍受、およびそれが埋め込まれたビューで発生した場合に迅速にそれを無視持つ方法があれば、私は思ったんだけど。

// not exact syntax 
func gestureRecognizer(touch){ 
    if (touch.view == self.embeddedView || (touch.view.isDescendantOf(embeddedView))!){ 
      return false 
     } 
    return true 
} 

は、しかし、私は気の抜けたビールのために同じことを任意の機能を見つけることができません:私は、タップのために、私はタップジェスチャー認識のためのデリゲートとしての私のビューコントローラを設定して、次のような何かができることを知っています。誰かが私を正しい方向に向けることができますか?

+0

スワイプは埋め込みビューで*開始*する場合にのみ無視するか、そのビュー上でのモーションを無視する必要がありますか?前者は自明で、後者はもっと難しいかもしれません。 –

+0

あまり明確でないため申し訳ありません。埋め込みビューで開始すると、スワイプを無視したいと思います。 – finn

答えて

3

をスワイプジェスチャーのデリゲートとしてカスタムビューコントローラを設定し、shouldReceiveTouchを上書き方法。

func gestureRecognizer(gestureRecognizer: UIGestureRecognizer, shouldReceiveTouch touch: UITouch) -> Bool { 
    return !CGRectContainsPoint(embeddedView.bounds, touch.locationInView(embeddedView)) 
} 
+0

ありがとうございました!私は+1しましたが、まだそれを示すのに十分な担当者がいません。非常に高く評価。 – finn

+0

@finnあなたは答えの左側にある灰色のチェックマークをクリックすることで回答を受け入れることができます。 – shallowThought

+0

@ finn正しい場合は回答を受け入れてください。http://stackoverflow.com/help/someone-answers –

-1

UISwipeGestureRecognizer uは次のように実装することができWICHがあります。詳細については、この回答で

let swipeRight = UISwipeGestureRecognizer(target: self, action: #selector(self.swipeRightDetected)) 
self.embeddedView.addGestureRecognizer(swipeRight) 

ルック:https://stackoverflow.com/a/24215844/5664183

+0

私はスワイプジェスチャー認識を実装する方法を理解しています。私はそれが私の埋め込みビューに開始した場合スワイプを無視する方法を把握しようとしています。ごめんなさい。 – finn

関連する問題