0

私は、いくつかの異なるジェスチャレスポンダに応答するように設定したい画像があります。たとえば、ピクチャの1つの部分がタッチされた場合、1つのセレクタが呼び出され、別のセレクタがピクチャの別の部分に対応するようになります。複数のジェスチャレスポンダを単一のビューで表示する

私はUIGestureRecognizerクラスとUITapGestureRecognizerクラスを見ましたが、それらに関連付けられるイメージゾーンを指定する方法が見つかりませんでした。これはiOSでも可能ですか?もしそうなら、どんな授業を使って調べるべきですか?

答えて

3

最も簡単な解決策は、画像上に見えないビューを置き、ジェスチャ認識ツールをそれらの上に置くことです。

これが実現不可能な場合は、ジェスチャ認識機能のタップハンドラのlocationInViewを見て、ユーザがタップした場所に基づいて何をしたいかを判断する必要があります。

+0

、感謝を! –

2

プロパティを使用して、タップが発生した場所を特定し、条件付きでメソッドを呼び出すことができます。ヒットエリアに対応するCGRectを設定することで、これを行うことができます。次に、CGRectContainsPoint()関数を使用して、タップがヒット領域の1つに着陸したかどうかを判断します。

あなたのタップジェスチャー認識のアクションは、次のようになります。私のために働いた

- (void)tapGestureRecognized:(UIGestureRecognizer *)recognizer 
{ 
    // Specify some CGRects that will be hit areas 
    CGRect firstHitArea = CGRectMake(10.0f, 10.0f, 44.0f, 44.0f); 
    CGRect secondHitArea = CGRectMake(64.0f, 10.0f, 44.0f, 44.0f) 

    // Get the location of the touch in the view's coordinate space 
    CGPoint touchLocation = [recognizer locationInView:recognizer.view]; 

    if (CGRectContainsPoint(firstHitArea, touchLocation)) 
    { 
     [self firstMethod]; 
    } 
    else if (CGRectContainsPoint(secondHitArea, touchLocation)) 
    { 
     [self secondMethod]; 
    } 
} 
関連する問題