titles prefer large bar ios swift uinavigationbar uisearchcontroller ios11

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 de shadowImage de la shadowImage de navigationBar 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



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.