Problemas de animación del teclado al llamar se convierten en FirstResponder dentro de un controlador de vista modal

He tenido algunos problemas con las llamadas.-becomeFirstResponder en unUITextField contenido con un controlador de vista que se presenta modalmente. Llamo a este método en el controlador de vista modal-viewDidLoad método para que el teclado se muestre inmediatamente. Lo que esperaba es que tanto el teclado como el controlador de vista modal se animen desde la parte inferior de la pantalla al mismo tiempo. Sin embargo, lo que estoy observando es lo siguiente:

Hay un retraso de ~ 0.2 segundos en la interfaz de usuario entre hacer clic en el botón que llama al-presentModalViewController:animated: método en el controlador de vista principal y cuando el controlador de vista secundario comienza a animarse modalmente.El teclado se presenta inmediatamente sin ninguna animación tan pronto como comienza la animación del controlador de vista modal.Una vez que se completa la animación del controlador de vista modal, todo lo demás parece funcionar sin problemas.Descartar el controlador de vista modal resulta en una animación suave fuera de la pantalla (junto con el teclado, por coincidencia).Al hacer clic en el botón que presenta el controlador de vista modal en cualquier momento después de la primera vez, se obtiene el mismo patrón, excepto que no hay un retraso de UI de ~ 0.2 segundos.

Es como si la animación del teclado y la animación del controlador de vista modal estuvieran compitiendo por algún recurso Core Animation de nivel inferior al mismo tiempo, pero no veo por qué debería estar sucediendo esto. Lo que parece corroborar aún más esta corazonada es si no preguntoUITextField para convertirse en el primer respondedor (es decir, si no le pido al teclado que se presente), entonces no hay absolutamente ningún retraso de UI, y el controlador de vista modal se anima instantáneamente.

Curiosamente, si hago algo como[self.textField performSelector:@selector(becomeFirstResponder) withObject:nil afterDelay:0.0001]; entonces, la animación del teclado ocurre casi al mismo tiempo que la animación del controlador de vista modal: es extremadamente difícil decir que no se están animando exactamente al mismo tiempo cuando se ejecuta en el Simulador de iPhone. Sin embargo, cuando se ejecuta en un dispositivo real, es fácil notar que el teclado no aparece hasta después de que se presenta el controlador de vista modal. Es importante destacar que, sin embargo, no hay más retraso en la interfaz de usuario.

¿Alguien ha experimentado algo similar a esto?

Respuestas a la pregunta(5)

Su respuesta a la pregunta