Estou tentando adicionar 2 UITapGestureRecognizers
a uma exibição, uma para toque único e outra para eventos de toque duplo. O reconhecedor de toque único está funcionando conforme o esperado (por conta própria). Mas parece que não consigo fazer o reconhecedor de toque duplo funcionar.
Tentaram experimentar com imóveis como: cancelsTouchesInView
, delaysTouchesBegan
e delaysTouchesEnded
, mas ainda não funciona.
Ao tocar duas vezes, o reconhecedor de toque único sempre será ativado e o evento de toque duplo também será enviado para a super visão. Mas o reconhecedor de toque duplo personalizado não parece ser notificado.
As documentações parecem sugerir que as três propriedades mencionadas acima podem ser usadas para esse fim. Mas não tenho certeza de quais valores devem ser definidos e em quais reconhecedores (únicos, duplos ou ambos). Espero que alguém familiarizado com isso possa ajudar.
A seguir, é apresentado o bloco de código atualizado mais recente.
// ****** 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
{
}