6

¿Hay alguna manera de deshacer requireGestureRecognizerToFail?Deshacer [UIGestureRecognizer * requireGestureRecognizerToFail]

Configuré una dependencia entre dos UIGestureRecognizers con requireGestureRecognizerToFail como este.

UITapGestureRecognizer* tgr1 = [UITapGestureRecognizer alloc] initWithTarget ...]; 
UITapGestureRecognizer* tgr2 = [UITapGestureRecognizer alloc] initWithTarget ...]; 
[tgr1 requireGestureRecognizerToFail: tgr2]; 
... 
// later in the code 
[tgr2 release]; 

¿Cómo puedo cancelar el registro de tgr2 con tgr1? ¿Se lanzó realmente tgr2 o tgr1 ahora tiene una referencia? Si no, ¿liberará tgr2 causar problemas?

Gracias

Respuesta

3

Sus preguntas:

¿Cómo anular el registro tgr2 con tgr1?

Tiene muchas opciones.

  1. Lo puede quitar de la vista.
  2. Puede desactivar tgr2.
  3. Para mantener los dos reconoce, necesitará crear un nuevo reconocedor igual al requerido para fallar y agregarlo, no sé cómo eliminar solo la dependencia entre ellos, y no sé si hay alguna manera.

¿Ya se lanzó tgr2 o tgr1 tiene una referencia?

tgr2 no tendrá la cuenta de retención incrementado cuando se agrega a tgr1 requireGestureRecognizerToFail con tgr2.

Si no, liberará tgr2 ¿causa problemas?

No, será causa ningún problema, solo que tgr2 siempre fallar y se llamará tgr1

+0

Hey, ¿tiene una fuente para estas afirmaciones? Parece funcionar en la práctica, pero ¿alguna vez Apple o un empleado de Apple ha dicho que el comportamiento es contractual? –

+0

@AndreyTarantsov No recuerdo, pero solía trabajar mucho con gestos, tal vez algunos de ellos no provienen de un documento, sino de una prueba que hice. – ggrana