J'ai mis en place un UISearchController
comme 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
SearchResultsController
est juste un contrôleur de vue avec UITableView
pour 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