2つのuiimageview
sを追加し、1つを別のsubview uiview
(imageview1,imageview2
)。最初のビューでは、上部のuiimageview
は非表示です(imageview2
)2番目のビューでは、下のimageview
は非表示です(imageview1
)。
タップジェスチャの割り当て:
UITapGestureRecognizer *singleTap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(oneTap:)];
UITapGestureRecognizer *singleTap1 = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(oneTap:)];
両方のuiimageviewのユーザーインタラクションをYESに設定します。
[singleTap setNumberOfTapsRequired:1];
[singleTap1 setNumberOfTapsRequired:1];
// uiimageviewにジェスチャーを追加
タップジェスチャレコグナイザーとセレクターをそれぞれ追加します。
[imageview1 addGestureRecognizer:singleTap];
[imageview2 addGestureRecognizer:singleTap1];
しかし、私のタップは認識されません。
誰が間違いがどこにあるか教えてもらえますか?
ジェスチャ認識エンジンを追加する前に、setUserInteractionEnabled:YES
を設定してみてください。
[imageview1 setUserInteractionEnabled:YES]
[imageview2 setUserInteractionEnabled:YES]
[imageview1 addGestureRecognizer:singleTap];
[imageview2 addGestureRecognizer:singleTap1];
更新:
コメントを行った後、タップイベントを検出する前にビューを一番上に表示することをお勧めします。親imageViewは上にあり、これらのタップをキャッチするためです。
[yourparentview bringSubviewToFront:imageview1];
[yourparentview bringSubviewToFront:imageview2];
UITapGestureRecognizer *singleTap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(oneTap:)];
singleTap.numberOfTapsRequired = 1;
singleTap.numberOfTouchesRequired = 1;
singleTap.delegate = self;
[imageview1 addGestureRecogniser:singleTap];
[singleTap1 release];
imageview1.userInteractionEnabled = YES; //disabled by default