Ich habe seit einiger Zeit mit der Suchleiste von UISearchController gekämpft. Ich brauche eine Suchfunktion, die in einer Tabellenansicht implementiert werden soll, aber im Gegensatz zu herkömmlichen Methoden habe ich die Suchleiste nicht in eine Tabellenkopfansicht eingefügt. Stattdessen habe ich eine UIView
erstellt und die Suchleiste als Unteransicht hinzugefügt. Die UIView
, die als Container für die Suchleiste fungiert, hat ihre Einschränkungen ordnungsgemäß im Storyboard mit automatischem Layout festgelegt.UISearchController SearchBar verschiebt sich während der Rotation, während es aktiv ist
Hier sind meine Codes dafür. Beachten Sie, dass ich dies programmgesteuert vorgenommen habe, da UISearchDisplayController und UISearchBar ab iOS 8 zugunsten von UISearchController veraltet sind und noch nicht zu UIKit gekommen sind.
searchController = UISearchController(searchResultsController: nil)
searchController.searchResultsUpdater = self
searchController.dimsBackgroundDuringPresentation = false
searchController.searchBar.autoresizingMask = .FlexibleRightMargin
searchController.searchBar.delegate = self
definesPresentationContext = true
self.searchContainerView.addSubview(searchController.searchBar)
Allerdings bemerkte ich ein seltsames Verhalten der Suchleiste während der Rotation. Wenn es im Hochformat aktiv ist, drehe ich den Simulator auf Querformat und drücke Abbrechen, die Suchleiste kehrt zu Hochformat zurück.
Das gleiche passiert in die andere Richtung zu sich um.
Ich würde irgendwelche Ideen zu schätzen wissen oder vielleicht ein paar Hinweise auf die richtige Richtung, dies zu lösen, wie ich für Tage zumindest an dieser gewesen sein. Vielen Dank
Wie Sie Breite ändern können. Sie können Frame einstellen! –
Mit diesem für eine Weile gekämpft. Danke für den Beitrag! Zusätzlich können Sie 'searchController.searchBar.sizeToFit()' anstelle von 'self.searchController.searchBar.frame.size.width = self.view.frame.size.width' verwenden, zumindest das hat für mich funktioniert. –
das ist das einzige, was für mich funktionierte nach dem Ausprobieren vieler viele Korrekturen! Vielen Dank!! – user2704776