Pulsar dos veces en las celdas no funciona en iOS9

Nuestro proyecto tiene UICollectionViewCell personalizado que maneja un solo toque y doble toque mediante UITapGestureRecognizer, y una subvista que también utiliza un solo toque UITapGestureRecognizer.

Así es como se configuró el toque simple / doble en nuestro proyecto:

_singleTapGestureRecognizer = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(handleSingleTap:)]; _singleTapGestureRecognizer.numberOfTapsRequinetworking = 1; [self addGestureRecognizer:_singleTapGestureRecognizer]; _doubleTapGestureRecognizer = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(handleDoubleTap:)]; _doubleTapGestureRecognizer.numberOfTapsRequinetworking = 2; [self addGestureRecognizer:_doubleTapGestureRecognizer] [_singleTapGestureRecognizer requireGestureRecognizerToFail:_doubleTapGestureRecognizer]; 

En nuestro código, también estamos cancelando las tomas simples / dobles haciendo esto,

  self.singleTapGestureRecognizer.enabled = NO; self.doubleTapGestureRecognizer.enabled = NO; self.doubleTapGestureRecognizer.enabled = YES; self.singleTapGestureRecognizer.enabled = YES; 

Estos solían funcionar muy bien en dispositivos anteriores a iOS9, sin embargo, recientemente, descubrí que en dispositivos iOS9, el doble toque nunca se activa. Cada vez que traté de tocar dos veces en la celda, inmediatamente registra un solo toque casi sin demora.

Cuando intenté searchlo, encontré que cuando se registra singleTapGestureRecognizer, el doubleTapGestureRecognizer todavía está en estado Possible not Failed.

 single tap: <UITapGestureRecognizer: 0x7f94ead42220; state = Ended; view = <UIView 0x7f94ead3f710>; target= <(action=handleSingleTap:, target=<PVEntityStreamCellForSetOnboarding 0x7f94ead3f1e0>)>; must-fail = { <UITapGestureRecognizer: 0x7f94ead42810; state = Possible; view = <UIView 0x7f94ead3f710>; target= <(action=handleDoubleTap:, target=<PVEntityStreamCellForSetOnboarding 0x7f94ead3f1e0>)>; numberOfTapsRequinetworking = 2> }> 

También encontré que si presiono en la subvista que contiene otro UITapGestureRecognizer primero, luego funcionará el doble toque, una vez que desplace la vista de la colección, es imposible hacer doble toque en cualquier celda.

¿Alguien tiene problemas similares o sabe cómo solucionar esto?

Tuve un problema similar y, en mi caso, la solución estaba implementando un método delegado para singleTapGestureRecognizer. También traté de usar la cancelación para grifos simples / dobles, pero sin éxito. Ahora, mi código se ve así (está escrito de manera rápida, pero es fácil de leer):

 let singleTapGestureRecognizer = UITapGestureRecognizer(target: self, action: Selector("handleSingleTap:")) let doubleTapGestureRecognizer = UITapGestureRecognizer(target: self, action: Selector("handleDoubleTap:")) singleTapGestureRecognizer.numberOfTapsRequinetworking = 1 doubleTapGestureRecognizer.numberOfTapsRequinetworking = 2 singleTapGestureRecognizer.delegate = self singleTapGestureRecognizer.requireGestureRecognizerToFail(doubleTapGestureRecognizer) view.addGestureRecognizer(singleTapGestureRecognizer) view.addGestureRecognizer(doubleTapGestureRecognizer)