J'ai mis en place un UISearchControllercomme ceci:
searchResultsController = SearchResultsController()
searchController = UISearchController(searchResultsController: searchResultsController)
searchController.searchResultsUpdater = self
searchController.hidesNavigationBarDuringPresentation = false
searchController.dimsBackgroundDuringPresentation = true
searchController.searchBar.searchBarStyle =.minimal
searchController.delegate = self
definesPresentationContext = true
navigationItem.titleView = searchController.searchBar
SearchResultsControllerest juste un contrôleur de vue avec UITableViewpour afficher les résultats de la recherche.
Lorsque l'appareil est en mode portrait, lancez la recherche en mode portrait, il y a un espace supplémentaire en haut de la vue du tableau (l'en-tête RESULT est le début de la vue du tableau)

Ensuite, si je tourne en mode paysage, l'espace a disparu:

Lorsque l'appareil est en mode paysage et que je lance la recherche, la vue du tableau est coupée :

Ensuite, si je tourne en mode portrait, la vue du tableau s'adapte parfaitement :

La hauteur de l'espace supplémentaire est exactement la même que la hauteur de la barre d'état. Je me demande donc s'il y a quelque chose lié à la barre d'état ici.
Cela ne s'est pas produit si j'attribue la barre de recherche en tant que vue de table tableHeaderView. Cela ne se produit que lorsque la barre de recherche est dans le titre de navigation. Quelqu'un sait pourquoi?
Solution du problème
Apparemment automaticallyAdjustsScrollViewInsets, il devient obsolète.
'automaticallyAdjustsScrollViewInsets' est obsolète dans iOS 11.0 : utilisez plutôt le contentInsetAdjustmentBehavior de UIScrollView
Je suggérerais donc de faire quelque chose comme:
searchResultsController.tableView.contentInsetAdjustmentBehavior =.never
Cela a fonctionné comme un charme pour moi. Quelques documentations utiles:
contentInsetAdjustmentBehavior
UIScrollViewContentInsetAdjustmentBehavior
Aucun commentaire:
Enregistrer un commentaire