Problemas con el reconocedor de gestos en iOS 7

Estoy agregando variosUIView objetos (por ejemplo, 5) a la pantalla, uno dentro de otro. Esto, por ejemplo,view5.superview = view4, view4.superview = view3, view3.superview=view2, view2.superview = view1. Por todo estoUIView Puse uitapgesturerecognizer; para la vista 1-4 Acabo de hacer NSLog (@ "tap% @", self) en la devolución de llamada, mientras que para la vista5 toca lo siguiente: eliminar view4 de la jerarquía, luego colocar el mismo objeto view4 'en el mismo lugar de la jerarquía . Este objeto también contiene view5 'para el cualUITapGestureRecognizer Se establece (en la práctica, sustituyo una parte del marcado con una similar).

Entonces empiezo a hacer clic en view5. Algún tiempo, view5 sigue captando su toque y todo está bien, pero un número aleatorio de toques más tarde (cada vez que este número es diferente) uno de los objetos view1-4 comienza a capturar este toque, aunque todavía estamos haciendo clic en view5. Todo el problema tiene un carácter aleatorio: a veces ocurre en el décimo lanzamiento, a veces en el segundo. A veces, los objetos erróneos comienzan a atrapar los toques en el primer toque. Además, nunca sé qué objeto atrapará un toque, cuando todo sale mal. El marco para la vista (n + 1) se estableció, por ejemplo, como la mitad de la vista del marco (n), mientras que el marco para la vista1 - por ejemplo. (0,0 320, 460).

Todas las operaciones con objetos ui descritas anteriormente se llevan a cabo en el hilo principal, y todo lo que he contado funciona perfectamente en iOS 4.3 - 6.1 con ejemplos mucho más complejos. Pero el iOS7 hace de él una especie de infierno aleatorio.

Actualizar: He creado un proyecto de muestra, para simplificar el proceso de depuración. No hay operaciones de agregar / eliminar subvistas en el tap. Solo 4 vistas en pantalla, al tocar la aplicación se registra la vista que se tocó. Por lo tanto, debe tocar en la vista más pequeña (4). Si ve "toque 4 toque 4 toque 4 ..." en el registro, este es el caso cuando todo funciona bien, deténgase y ejecute nuevamente, deténgase y ejecute nuevamente, deténgase y ejecute nuevamente, etc. Y en algunas ejecuciones (quizás después de 10) + ejecuciones exitosas) no verá "toque 4" en la primera línea, verá "toque 1" o "toque 2" o "toque 3", y continuará así, estos son los casos malos.

El proyecto de muestra se puede descargar desde aquí:http://tech.octopod.com/test/BuggySample.zip (solo 33 Kb en archivo).

Actualización 2

Hemos publicado un error en Apple, lo publicaré aquí cuando recibamos algunos comentarios. Sin embargo, cualquier buena solución sería muy apreciada!

Actualización 3

La solución, proporcionada por Yuvrajsinh, está realmente trabajando en el proyecto de muestra. Desafortunadamente, todavía no ayuda a resolver el problema que ocurrió en el proyecto principal donde apareció inicialmente. La razón principal por ahora es que si alguna vista sin autogestos está sobre el contenido al que se puede hacer clic, el elemento de vista aleatoria debajo de él comienza a captar la interacción (en lugar de la superior con un conjunto de gestos de interacción. ¿Tiene alguna idea de cómo puede resolverse?) ? La muestra actualizada se puede descargar desde aquí:http://tech.octopod.com/test/BuggySample2.zip

Respuestas a la pregunta(4)

Su respuesta a la pregunta