web-dev-qa-db-fra.com

geste du robinet non reconnu sur uiimageview

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?

29
user2706770

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];
109
User 1531343
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
2
n00bProgrammer