2017-01-16 11 views
2

私はタップがビュー内にあるのかビュー外にあるのかをチェックするためにコード部分を開発しようとしています。私はpointInsideメソッドで試しました。 AがメインView Controllerで、BがAのサブビューである場合、B内でタップされたそのユーザーを知ることができます。タップがビュー内か外かどうかを知る方法

答えて

4

AppleはResponder Chainでとてもうまく説明しています。ビューコントローラに次の関数を追加することができます。

override func touchesEnded(_ touches: Set<UITouch>, with event: UIEvent?) { 
    if let firstTouch = touches.first { 
     let hitView = self.view.hitTest(firstTouch.location(in: self.view), with: event) 

     if hitView === viewB { 
      print("touch is inside") 
     } else { 
      print("touch is outside") 
     } 
    } 
} 
+0

パラメータ 'with'を呼び出し中に引数が不足しています。私はそれを得ていませんでした。 – Joe

+0

ありがとう。私のために働いた.... – Aayushi

+0

デリゲートを設定する必要はありますか?それは解雇されていないので。 –

3

tapGestureRecognizerコールバックでは、tapGesture.location(in: A)メソッドを使用してx紹介システム。その後、B.frame.contains(location)を使用できます。

trueの場合、タップは、あなたがこの問題に対する単純なアプローチがある何をしたいのかに応じて、B.

です。たとえば、Bの中に触れるだけであれば、Aの代わりにgestureRecognizerをBに追加することができます。

あなたのニーズに正確には分かりません。私はあなたにもっと良いアドバイスを与えることができるより多くの情報。

関連する問題