Appuyez deux fois sur certains sous-vues spécifiques de la sous-classe UIGestureRecognizer?
-
29-09-2019 - |
Question
J'ai suivi la démonstration du 121 WWDC 2010 (Gesture de Reconnaissance) de la session de trouver un moyen d'avoir tous les comportements (rotation, échelle, traduire) sur une autre classe (TransformGestureReconizer) et tout va bien et faire cela pour les sous-vues :
- (void)viewDidLoad {
[super viewDidLoad];
[self.view addSubview:baseView];
subView1.userInteractionEnabled = YES;
[self addTransformGestureToView:subView1];
}
Voici mon problème: Je voudrais avoir une action quand je appuyez deux fois sur une sous-vue désirée.
Si j'ajoute un:
- (void)handleDoubleTap:(UIGestureRecognizer *)gestureRecognizer
Je ne peux pas choisir la vue mon action offre (comme changer l'image là-dessus) Si je Rajouter la vue principale:
- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
Je ne peux gérer la double tap sur l'écran principal, mais pas pour les sous-vues et ne peut le faire sur le TransformGestureReconizer.h
mais ne pas choisir le point de vue tapa (je pense que la sous-classe de UIGestureRecognizer).
La solution
J'ai trouvé une solution:
UITapGestureRecognizer *doubleTap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(handleDoubleTap:)];
[doubleTap setNumberOfTapsRequired:2];
[self addTransformGestureToView:subView1];
[self.subView1 addGestureRecognizer:doubleTap];
[doubleTap release];