En resumen, por lo que he leído y lo que mis experimentos han demostrado, el "pavo" parece engullir a los golpes y toques en una vista de tabla (en realidad celdas de la tabla) cuando una transición de estado (iniciada por el toque o deslizamiento del usuario) está en progreso, de modo que la transición de estado puede completarse antes de que el usuario pueda tocar la mesa nuevamente. Apple puede usarlo en otros casos, pero es en la vista de tabla que he observado a los gorriones.
Ahora la larga historia: supongamos que su vista de tabla implementa un "cajón" en la celda de la tabla, como la aplicación de correo o la aplicación de mensajes de Apple. Cuando abre el cajón con un deslizamiento hacia atrás y realiza una acción en cualquiera de los botones del cajón, todo está bien. Pero si cierra el sorteo con un segundo golpe, es probable que su próximo deslizamiento hacia atrás en una celda aleatoria no funcione. Pero si continúa haciendo los movimientos hacia atrás, el siguiente golpe normalmente funcionará nuevamente para mostrar el cajón. En pocas palabras, si solo abre y cierra el cajón en celdas aleatorias mediante el uso de deslizamientos, a veces encontrará que el cajón no se abre.
Veo este comportamiento en mi mesa y pensé que había hecho algo mal. Intenté muchas cosas y eventualmente implementé mi propia subclase de UITableView que también admite UIGestureRecognizerDelegate.En mi subclase, implementé la función shouldBeRequiredToFailByGestureRecognizer del delegado, solo para imprimir los pares gestureRecognizer y otherGestureRecognizer. Luego descubrí que cuando se reconoce el deslizamiento hacia atrás, el gobbler NO está presente en los pares. Pero cuando el deslizamiento hacia atrás no está funcionando, definitivamente el gorgojo ESTÁ presente.
La opinión general en la web es que el gobbler se usa para evitar que el usuario cause otra transición de estado en la tabla mientras una transición ya está en progreso. Eso está bien si el usuario realmente realiza alguna acción (tocando un botón en el cajón). Pero cuando el usuario simplemente cierra el cajón, se debe cancelar el gobbler. O el gobbler se debe agregar SÓLO cuando el usuario realiza una acción. Después de mi realización, pasé a probar mi teoría sobre las aplicaciones de Apple. Ya sabía que la aplicación de correo se comporta perfectamente respondiendo a cada golpe. Pero la aplicación de mensajes se comporta de forma intermitente a toques de apertura de cajón repetidos, al igual que mi aplicación. Así que supongo que los desarrolladores de Mail son más cuidadosos y usaron el conocimiento interno para hacerlo bien. Mi observación se hace en iOS 8.4 en iPhone 6 y iPad 2. Y creo que el mismo problema se remonta al menos desde el primer lanzamiento de iOS 8 porque sé que mi aplicación tuvo el problema desde el primer día (hace meses), pero acabo de recibirlo. alrededor para ver el problema.
¡Jaja, nombre de clase divertido! ¿Tal vez sea por golpes frenéticos? – Costique
Bueno, dado que no es API pública, mi sugerencia sería "no importa, y puedes ignorarla" :) –
Jaja Quiero decir si fuera solo un nombre de clase típico, lo ignoraría, pero un ' Gobbler' - ¡Quiero saber qué hace eso! – Snowman