iOS 11 SearchBar en NavigationBar
Con iOS 11, Apple ha rediseñado la UISearchBar al hacer que las esquinas sean más redondeadas y la altura sea más grande. Agregar una UISearchBar a la barra de navegación es bastante simple simplemente configurándolo como el título Vista del elemento de navegación usandonavigationItem.titleView = searchBar
.
Sin embargo, en iOS 11 ya no parece funcionar como se esperaba. Eche un vistazo a las pantallas donde comparamos la misma configuración con iOS 10 y iOS 11
Puede ver claramente que la barra de búsqueda aumenta el tamaño de la barra de navegación, pero los botones de la barra no se alinean correctamente. Además, la barra de búsqueda ya no usa el espacio disponible a la izquierda.
Poner la barra de búsqueda en una vista de contenedor para obtener el botón cancelar en iPad como se describe aquíEl botón Cancelar no se muestra en UISearchBar tampoco parece funcionar ya que searchBar no es visible en absoluto.
Si alguien tiene problemas similares o ya sabe cómo solucionar / mejorar esto, estaría muy agradecido.
Esto se creó con Xcode 9 Beta 4. Tal vez las futuras versiones solucionen este problema.
ACTUALIZAR:
Como esto no se soluciona, decidimos usar la siguiente solución. Agregamos un nuevo UIBarButtonItem al NavBar que luego presenta un nuevo ViewController donde solo ponemos un searchBar y nada más en el NavBar que parece funcionar. El uso de la respuesta seleccionada puede ser la mejor solución ya que Apple con iOS 11 quiere que usemos este nuevo diseño, incluso si no nos da el resultado que originalmente queríamos. Otra forma de resolver esto podría ser una barra de búsqueda personalizada, pero este es otro tema.