Sto provando ad aggiungere 2 UITapGestureRecognizers
a una vista, una per singolo tocco e una per eventi doppio tocco. Il riconoscitore a singolo tocco funziona come previsto (da solo). Ma non riesco a far funzionare il riconoscimento doppio tocco.
Hanno cercato di sperimentare con immobili come: cancelsTouchesInView
, delaysTouchesBegan
e delaysTouchesEnded
ma non fa ancora lavoro.
Quando tocco due volte, il riconoscimento del tocco singolo viene sempre attivato e anche l'evento doppio tocco viene inviato alla super vista. Ma il riconoscimento doppio tocco personalizzato non sembra essere affatto notificato.
La documentazione sembra suggerire che le 3 proprietà sopra menzionate potrebbero essere utilizzate allo scopo. Ma non sono sicuro di quali valori debbano essere impostati e su quali riconoscitori (singoli, doppi o entrambi). Spero che qualcuno che abbia familiarità con questo possa aiutare.
Quello che segue è l'ultimo blocco di codice aggiornato.
// ****** 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
{
}