J'essaie d'en ajouter 2 UITapGestureRecognizers
à une vue, une pour les événements à pression unique et une pour les événements à double pression. Le module de reconnaissance de pression unique fonctionne comme prévu (seul). Mais je ne semble pas être en mesure de faire fonctionner le module de reconnaissance du double tap.
Ont essayé d'expérimenter avec des propriétés telles que : cancelsTouchesInView
, delaysTouchesBegan
et delaysTouchesEnded
mais ne fonctionne toujours pas.
Lorsque je touche deux fois, la reconnaissance de pression unique est toujours activée et l'événement de double pression est également envoyé à la super vue. Mais le module de reconnaissance personnalisé du double tap ne semble pas du tout être notifié.
Les documentations semblent suggérer que les 3 propriétés mentionnées ci-dessus pourraient être utilisées à cette fin. Mais je ne suis tout simplement pas sûr des valeurs à définir et sur quel (s) module de reconnaissance (simple, double ou les deux). J'espère que quelqu'un familier avec cela pourra vous aider.
Ce qui suit est le dernier bloc de code mis à jour.
// ****** gesture recognizers ******
- (void)addSingleAndDoubleTapGestureRecognizersToView:(UIView *)view
{
// single tap
UITapGestureRecognizer *singleTapRecognizer = [[UITapGestureRecognizer alloc] initWithTarget: tableViewController action: @selector(handleSingleTapOnView:)];
[singleTapRecognizer setNumberOfTouchesRequired:1];
[view addGestureRecognizer: singleTapRecognizer];
// double tap
UITapGestureRecognizer *doubleTapRecognizer = [[UITapGestureRecognizer alloc] initWithTarget: tableViewController action: @selector (handleDoubleTapOnView:)];
[doubleTapRecognizer setNumberOfTouchesRequired:2];
[singleTapRecognizer requireGestureRecognizerToFail: doubleTapRecognizer];
[view addGestureRecognizer: doubleTapRecognizer];
}
- (void)handleSingleTapOnView:(id)sender
{
}
- (void)handleDoubleTapOnView:(id)sender
{
}