2016-12-28 15 views
0

私は3つ持っていますUIImageviewtapGestureを使用してUIImageviewの操作を設定しました。私はそれぞれのUIImageviewが別の動作をしたい。どのUIImageviewが現在クリックされているかをどのように確認できますか?どのuiimageviewが現在クリックされているか確認できますか?

UITapGestureRecognizer *singleTap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(singleTapping:)]; 
[singleTap setNumberOfTapsRequired:1]; 
[_imageOne addGestureRecognizer:singleTap]; 
[_imageTwo addGestureRecognizer:singleTap]; 
[_imageThree addGestureRecognizer:singleTap]; 

-(void)singleTapping:(UIGestureRecognizer *)recognizer { 
} 
+2

タグ値を取得して適切な操作を実行できることを認識している間に、すべてのimageViews&にタグ値を追加するだけで済みます。 – iYoung

+0

はいタグを追加することで実現できます – Diksha

答えて

1

あなたは、コードの下に使用して検出することができます:

-(void)singleTapping:(UITapGestureRecognizer *) recognizer{ 
     if (recognizer.view == _imageOne){ 

     } else if (recognizer.view == _imageTwo) { 

     }else 
     { 
     } 
    } 
0

UIGestureRecognizerは、単一のビューで使用されるべきです。 Apple documentationで、この明示的な情報があります:

ジェスチャー認識装置は

すべてのジェスチャー認識は、1つのビューに関連付けられているビューに取り付けられています。対照的に、 ビューは、単一のビュー が多くの異なるジェスチャーに応答する可能性があるため、複数のジェスチャー認識プログラムを持つことができます。ジェスチャ認識ツール に特定のビューで発生した接触を認識するには、そのビューに ジェスチャ認識ツールを接続する必要があります。

0

最初に、同じUITapGestureRecognizerを複数のビューに添付することはできません。

だから、あなたのコードは動作しません、あなたは3つのUITapGestureRecognizerインスタンスを作成し、以下のような景色に添付する必要があります。

UITapGestureRecognizer *singleTapImg1 = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(singleTapping:)]; 

[singleTapImg1 setNumberOfTapsRequired:1]; 

UITapGestureRecognizer *singleTapImg2 = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(singleTapping:)]; 

[singleTapImg2 setNumberOfTapsRequired:1]; 

UITapGestureRecognizer *singleTapImg3 = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(singleTapping:)]; 

[singleTapImg3 setNumberOfTapsRequired:1]; 

[_imageOne addGestureRecognizer:singleTapImg1]; 
[_imageTwo addGestureRecognizer:singleTapImg2]; 
[_imageThree addGestureRecognizer:singleTapImg3]; 

さて、あなたはどのImageViewのをクリック、取得するためのコードの下に使用することができます

関連する問題