Pregunta

Tengo un problema con la creación de una visión de búsqueda modal que emule el comportamiento del de la aplicación meteorológica. Específicamente, hay dos animaciones, que me están molestando e introducen retrasos innecesarios de 0.2 s:

  • Cuando la vista modal se vuelve visible, me enfoco en el UISearchDisplayController.searchBar por caling se convierte en serponder en viewDidAppear. Sin embargo, el teclado no es visible, cuando la vista modal se ha deslizado, pero necesita otros 0.2s para deslizarse después de que se completa la animación de la transición de la vista modal. Mover la llamada a otra devolución de llamada como viewWillAppear o viewDidLoad No fue bueno, el teclado no aparecerá en primer lugar.

  • Cuando el usuario toca la cancelación, se produce otra animación, antes de que el delegado searchDisplayControllerDidEndSearch Se llama método, ampliando el campo de texto de búsqueda y "derritiendo" el botón. Una vez más, esta animación no se encuentra ya que se supone que la vista modal debe pasar cuando se toca el botón.

  • Además, cuando descarto y vuelvo a presentar la misma vista, el teclado no solo se desliza después de la transición, sino que el botón Cancelar hace lo mismo (afortunadamente simultáneamente).

Soy consciente de un problema similar descrito aquí: Problemas de animación del teclado Al llamar a Book FirSponder dentro de un controlador de vista modal. Sin embargo, parece que el comportamiento de la barra de búsqueda está diferido en el campo de texto. No pude reproducir los pasos descritos por ese autor para hacer visible el teclado llamando becomeFirstResponder en viewDidLoad.

Saludos, Chris

¿Fue útil?

Solución

Creo que encontré tu respuesta. Cuando agrega una barra de búsqueda usando el Interface Builder, puede hacerlo de dos maneras: "Barra de búsqueda" y "Barra de búsqueda y controlador de visualización de búsqueda".

Estaba usando el segundo y estaba teniendo el mismo problema que describiste. Solo podía invocar el teclado (usando BecinFirSponder) en "ViewDidappear". Pero si lo hace agregando solo la barra de búsqueda, funciona. Ahora puedo llamar a BookFirSponder en "ViewDidload" y el teclado aparece junto con la vista en sí.

Me refiero a un poco más de trabajo, pero realmente no mucho. Debe configurar su controlador para que sea el delegado de la barra de búsqueda. Agregué una vista de lista para los resultados e hice que mi controlador se convirtiera en su delegado y su fuente de datos.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top