Używam kontrolera UISearchController, który integruje się z moim tableview. Aby mój pasek wyszukiwania nie przewijał się przy stole, już pod paskiem nawigacyjnym utworzyłem widok (nazwa SearchBarView), a moja tabela znajduje się pod tym widokiem. Wszystkie elementy w moim widoku są konfigurowane za pomocą automatycznego układu: Jak zrobić autoLayout dla UISearchController podczas obracania urządzenia?
W moim kodzie. Robię UISearchController jak podrzędny z SearchBarView i korzystania z funkcji sideToFit na auto dopasowania do szerokości ekranu tak:
self.resultSeachController = ({
let controller = UISearchController(searchResultsController: nil)
controller.searchResultsUpdater = self
controller.dimsBackgroundDuringPresentation = false
controller.searchBar.sizeToFit()
// add searchbar in the searchbarView
self.searchBarView.addSubview(controller.searchBar)
return controller
})()
Moja SearchBar pracuje teraz idealne, z wyjątkiem jednego: kiedy obrócić symulator, paska wyszukiwania nie jest automatycznie dopasować szerokość ekranu. Dopasowuje się on do ekranu tylko wtedy, gdy dotykam paska wyszukiwania w celu wyszukania czegoś.
nie wiem jak to naprawić. Próbowałem tego kodu:
override func viewWillTransitionToSize(size: CGSize, withTransitionCoordinator coordinator: UIViewControllerTransitionCoordinator) {
self.resultSeachController.searchBar.sizeToFit()
}
Ale nadal nie działa. Jak mogę to naprawić?
Czy znaleźć żadnego obejścia dla niego? –