Problemas de iOS 11 con navigationBar prefersLargeTitles
uisearchcontroller in navigation bar ios 11 (4)
Xcode 9 beta 6 iOS 11
Tengo un guión gráfico para un viewController
, la vista de fondo ImageView , tableView y searchFooter son las subvistas de la vista. La estructura es la siguiente:
En la clase AppDelegate
, establezco
UINavigationBar.appearance().prefersLargeTitles = true
y
UINavigationBar.appearance().setBackgroundImage(UIImage(),for: .default)
UINavigationBar.appearance().shadowImage = UIImage()
En la clase viewController
, configuro navigationItem.searchController = searchController
y navigationItem.hidesSearchBarWhenScrolling = true
Cuando ejecuto la aplicación, encontré que la
shadowImage
deshadowImage
de lashadowImage
denavigationBar
todavía existía. La barra de navegación no se convertiría en normal (no en el modo de títulos de gran preferencia) automáticamente (el gif izquierdo) cuando desplacé el tableView. Espero que la barra de navegación funcione como la aplicación del sistema (el gif derecho).
Un comportamiento extraño: cuando
imageView
la imagen de fondo, puede funcionar tan bien como la aplicación del sistema en el simulador.
No sé por qué sucedió, me pregunto cómo resolverlo. Gracias.
Debería agregar la línea siguiente en viewDidLoad ()
self.navigationController?.navigationBar.prefersLargeTitles = true
navigationItem.hidesSearchBarWhenScrolling = false
O PUEDE implementar el método UITableViewDataSource
de UITableViewDataSource
func tableView(_ tableView: UITableView, viewForHeaderInSection section: Int) -> UIView?
{
let search = UISearchController(searchResultsController: nil)
search.searchResultsUpdater = self
return search.searchBar
}
Enlace para ver la captura de pantalla 1 Enlace para ver la captura de pantalla 2
Haga su restricción TableView Top justo debajo de la barra de navegación de NavigationController''s, no con ViewControllers Top. Deberia de funcionar
He hecho una pequeña aplicación para su problema. Puedes llegar al proyecto en Github.
Barra de navegación transparente para iOS11
Nota: Debe usar un color para UINavigationBar cuando se desplaza hacia arriba.
La cuenta ha sido eliminada por el equipo de . Así que uso mi otra identificación para comentar aquí. He reportado el problema a Apple, me pidieron que proporcionara un proyecto y lo hice, pero no más comentarios de Apple.