2012-05-05 8 views
14

クイック質問をタップジェスチャーを検出するために:どのように私は、タップジェスチャー認識は、それがに追加されたビューのサブビュー内にあるかどうかを検出できますか?例えば。私は、そのようなタップジェスチャー認識が追加されました背景にサブビューとして追加されている広場などのオブジェクトをクリックした場合、どのように私はそれがタップされたことを検出しますか?はどのようにサブビューに

+0

あなたがやりたいものを明確に解明を教えてください?サブビューのクリックを認識したいですか? –

答えて

37

あなたのハンドラメソッドを使用すると、-locationInView:を使用したい任意のビューにそれぞれ呼び出されたときに、ジェスチャー認識をオフタップのポイントをつかむことができます。あなたは合格点をビューと同じ座標空間にあることを思い出してタップされた実際のサブビューへの参照を取得するために- (UIView *)hitTest:(CGPoint)point withEvent:(UIEvent *)event:次に、UIViewの上で次のメソッドを使用します。

あなたが始めるためにいくつかのコード:ヒットテストのために

CGPoint point = [tapGestureRecognizer locationInView:parentView]; 
UIView *tappedView = [parentView hitTest:point withEvent:nil]; 

を視野に動作するようにはYESuserInteractionEnabledプロパティセットを持っている必要があります。このようUILabelのような多くのビューは、デフォルトでNOにこのセットを持っています。だから、前以上に:

self.subviewOfInterest.userInteractionEnabled = YES; 
+0

ありがとう、それは大いに役立ちます! – Fitzy

+0

ありがとう@Brandom –

0

あなたは多分thisコード

13

あなたが設定する必要があります参照してくださいサブビューのタップを認識するrequireGestureRecognizerToFail:を使用することができますように: subviews.userInteractionEnabled = YES; 幸運!

+0

くそー!これが私の必要なものです。私のサブビューはgestureRecognizerによって無視され、今は動作します。ありがとう。 – surfrider

関連する問題