Estoy tratando de agregar 2 UITapGestureRecognizers
a una vista, una para un solo toque y otra para eventos de doble toque. El reconocedor de un solo toque funciona como se espera (por sí solo). Pero parece que no puedo hacer funcionar el reconocedor de doble toque.
Han tratado de experimentar con propiedades como: cancelsTouchesInView
, delaysTouchesBegan
y delaysTouchesEnded
pero aún no funciona.
Cuando toco dos veces, el reconocedor de un solo toque siempre se activará y el evento de doble toque también se enviaría a la vista super. Pero el reconocedor de doble toque personalizado no parece ser notificado en absoluto.
Las documentaciones parecen sugerir que las 3 propiedades mencionadas anteriormente podrían usarse para este propósito. Pero no estoy seguro de qué valores deben establecerse y en qué reconocedor (s), simple, doble o ambos. Espero que alguien familiarizado con esto pueda ayudar.
El siguiente es el último bloque de código actualizado.
// ****** 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
{
}