Ich habe mein UISearchBar
wie folgt eingerichtet:
searchController.searchResultsUpdater = self
searchController.obscuresBackgroundDuringPresentation = false // Allow user to tap on results
searchController.searchBar.placeholder = "Search patients" // Placeholder
searchController.searchBar.barStyle = .blackOpaque
searchController.searchBar.tintColor = colors.text // Cancel button tint
navigationItem.searchController = searchController // Set the searchController
navigationItem.hidesSearchBarWhenScrolling = true // Auto-hide search when user scrolls
So sieht es unter iOS 12 aus: vs iOS 13:
Was hat sich in iOS 13 geändert? Ich habe versucht, die verschiedenen
barStyles
durchzugehen und auch .isTranslucent
to false - auch keine Auswirkung. Der Hell/Dunkel-Modus ändert auch nichts.
Die andere Änderung ist das Ausblenden der Suchleiste - unter iOS 12 würde sich die Suchleiste ausblenden, wenn ich ein wenig nach oben scrolle (egal, ob die Tabelle gefüllt ist oder nicht). Unter iOS 13 kann die Suchleiste nicht mehr ausgeblendet werden, sobald sie angezeigt wurde (dh der Benutzer hat nach unten gewischt). Kennt jemand auch eine Lösung dafür?
Ich habe ein ähnliches Problem mit dir. Ich weiß nicht, warum dies derzeit in iOS 13 passiert und in älteren Versionen ordnungsgemäß funktioniert. Aber ich habe die Lösung gefunden, indem ich diese Funktion zu Ihrer Suchleiste hinzugefügt habe.
if #available(iOS 13.0, *) {
searchBar.searchTextField.backgroundColor = UIColor.white
}
Vorschau nach dem Fixieren:
Wie wäre es, searchBarStyle
als default
zu verwenden und die Hintergrundfarbe searchTextField
zu ändern?
if #available(iOS 13.0, *) {
searchBar.searchBarStyle = .default
searchBar.searchTextField.backgroundColor = UIColor.black.withAlphaComponent(0.1)
}
Zum globalen Einstellen wie in AppDelegate
:
if #available(iOS 13, *) {
UITextField.appearance(whenContainedInInstancesOf: [UISearchBar.self]).backgroundColor = .anyColor
}
searchController.searchBar.searchTextField.backgroundColor = UIColor.black
erledigt den Job als Workaround. Der Selektor ist neu in iOS 13.
Ich habe ohnehin einen Bericht über den Feedback-Assistenten eingereicht, da ich glaube, dass dies ein unerwartetes Verhalten ist.