J'ai ajouté deux uiimageview
, l'un sur l'autre subview uiview
(imageview1,imageview2
). Dans la première vue, le haut uiimageview
est masqué (imageview2
) et dans la deuxième vue, le bas imageview
est masqué (imageview1
).
Attribution du geste de prise:
UITapGestureRecognizer *singleTap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(oneTap:)];
UITapGestureRecognizer *singleTap1 = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(oneTap:)];
Définissez l'interaction utilisateur pour uiimageview sur OUI.
[singleTap setNumberOfTapsRequired:1];
[singleTap1 setNumberOfTapsRequired:1];
// ajout d'un geste à uiimageview
Ajoutez respectivement la reconnaissance des gestes et le sélecteur.
[imageview1 addGestureRecognizer:singleTap];
[imageview2 addGestureRecognizer:singleTap1];
Mais mes robinets ne sont pas reconnus.
Quelqu'un peut-il me dire où est l'erreur?
Essayez de définir setUserInteractionEnabled:YES
avant d'ajouter la reconnaissance des gestes.
[imageview1 setUserInteractionEnabled:YES]
[imageview2 setUserInteractionEnabled:YES]
[imageview1 addGestureRecognizer:singleTap];
[imageview2 addGestureRecognizer:singleTap1];
Mise à jour:
Après le commentaire que vous avez fait, je vous suggère de mettre votre point de vue au sommet avant de détecter l'événement Tap. Parce que l'image parent est au-dessus et intercepte ces tapotements.
[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