ich einen View-Controller von einem Popover segue geöffnet haben - auf dem iPhone zeigt dies öffnet als eine ganze Seite View-Controller (im Grunde modal). Auf dem iPad öffnet es sich als Popover.Swift 3: UISearchBar in Popover Viewcontroller erscheint breiter als erwartet (auf dem iPad)
Beim Öffnen der Ansicht auf dem iPad ist die Suchleiste breiter als die Ansicht des Popover. Dies tritt bei keiner der iPhone Bildschirmgrößen auf - nur iPad (als Popover).
Wenn ich bringen die UISearchBar zu konzentrieren (tippen Sie auf das Textfeld) das Problem selbst löst, bis die Ansicht wieder geöffnet:
Die UISearchBar ist programmatisch zu einer UIView der gewünschten Dimensionen hinzugefügt. Hier
ist der Code für die Initialisierung SearchController
self.resultSearchController = ({
let controller = UISearchController(searchResultsController: nil)
controller.searchResultsUpdater = self
controller.dimsBackgroundDuringPresentation = false
controller.searchBar.sizeToFit()
controller.definesPresentationContext = false;
searchBarView.addSubview(controller.searchBar)
return controller
})()
ich versucht habe, zu entfernen .sizeToFit() und stattdessen Schlichte auf der Basis eines CGSize
controller.searchBar.sizeThatFits(CGSize(width: 375, height: 44)
dies nicht funktioniert, jedoch. Ich habe auch versucht, view.setNeedsLayout() und view.LayoutIfNeeded() aufzurufen. Keine davon hat Auswirkungen.
Ich könnte dieses Problem lösen, indem ich die UISearchBar in ViewDidLoad aktiviere, aber nach einer weniger janky Lösung suche.
Danke!