iOS 11 anpassen, Suchleiste in der Navigationsleiste
Möchte ich die Farbe ändern von dem text und ein Symbol in der iOS-11 Suchleiste, wenn es eingebettet ist in die Navigationsleiste. Also Platzhalter-text, text suchen und suchen-Symbol.
if #available(iOS 11.0, *) {
navigationController?.navigationBar.prefersLargeTitles = false
let searchController = UISearchController(searchResultsController: nil)
navigationItem.searchController = searchController
navigationItem.hidesSearchBarWhenScrolling = false
searchController.searchBar.placeholder = "Suchen"
searchController.searchBar.tintColor = .white
}
Wie Sie, in sehen können das Bild, der text ist Grau, die auf einem tiefen blauen hintergrund, der hässlich aussieht. Ich will text und Symbol, zu mindestens weiß. (ändern die Blaue Hintergrundfarbe funktioniert auch nicht wirklich gut, sehen meine andere Frage)
Das einzige was funktioniert ist das ändern der Farbe der blinkenden cursor und der Taste "Abbruch", das mit der .tintColor-Eigenschaft.
Lösungen, die zu funktionieren scheint in iOS 10 und unten scheinen nicht mehr in iOS 11, also poste bitte nur Lösungen, die Sie wissen, arbeiten in der iOS-11. Danke.
Vielleicht vermisse ich den Punkt "automatische styling" in iOS-11. Jede Hilfe ist willkommen.
UITextField.appearance(whenContainedInInstancesOf: [UISearchBar.self]).tintColor = .white
?Ja, funktioniert nicht.
InformationsquelleAutor Darko | 2017-09-01
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich nur gefunden, wie auch der rest von Ihnen: (mit etwas Hilfe von Brandon, danke!)
Den "Abbrechen" - text:
Auf das suchen-Symbol:
Das Symbol "löschen":
Die Suche text:
Danke für die Hilfe @Brandon!
Den Platzhalter:
Den weißen hintergrund:
Entnommen hier.
textField.subviews.first
Ansicht hat Ihre eigene Untersichten, die für alpha-getönten Schattierungen. Ich habe versucht alles kurz zu swizzling zu töten, die Shader, kein Glück. Wenn jemand findet eine Lösung, würde es gerne hörenIn Bezug auf ^^ ich endlich einen fix. Nach der Suche bar
didMoveToSuperview
, wenn Sie gehenfor subview in textField.subviews.first.subviews
subview.removeFromSuperview()
es scheint, können Sie beseitigen die Shader, und mit einem reinen weißen hintergrund rgb(1,1,1)Schön finden!
entweder Sie fixiert dieses auf iOS 11.2 wo der text eingegeben haben, ist in den Farben weiß, also unsichtbar ist?
nicht sicher, ob jemand über dieses, aber es scheint, wie die Suchleiste Hintergrundfarbe ist standardmäßig schwarz, es sei denn, es erhält einen der UIColor enums als Wert
InformationsquelleAutor Darko
Setzen
UITextField.appearance(whenContainedInInstancesOf: [UISearchBar.self]).defaultTextAttributes = [NSForegroundColorAttributeName: UIColor.white]
und
UISearchBar.appearance().tintColor = UIColor.white
imAppDelegate
.Alternativ, setzen Sie beide in
[UIViewController viewDidLoad:]
Objective-C-syntax: [UISearchBar Darstellung].tintColor = [UIColor whiteColor]; [[UITextField appearanceWhenContainedInInstancesofclasses:@[[UISearchBar Klasse]]] setDefaultTextAttributes:@{NSForegroundColorAttributeName: [UIColor whiteColor]}];
InformationsquelleAutor Brandon
Set Suchtext Farbe
Festlegen, Suche Platzhalter Farbe
InformationsquelleAutor Donny
meine zwei Cent für den Swift 4.x, leicht gereinigt.
Fügen Sie im controller oder in der App-Delegate:
controller:
Erhalten Sie Blauen hintergrund, grün, search bar hintergrund, Roter kursiver Schrift:
appearance
erklärt.richtig! //search bar: lassen Sie Aussehen = UITextField.Aussehen(whenContainedInInstancesOf: [UISearchBar.selbst -])
InformationsquelleAutor ingconti
Neben Darko Antwort.
In meinem Fall ich brauche, um Reine weiße Suchfeld textfield Farbe.
Auch ich brauche eine benutzerdefinierte Grenze und cornerRadius.
Also, wenn ich nur einstellen, Hintergrundfarbe auf weiß, set custom corner radius und benutzerdefinierte Grenze habe ich so etwas wie dieses.
Das problem ist, dass die search-bar hat einige Untersichten und ich habe Sie gerade entfernt.
Hier ist mein code:
Nun habe ich eine Suchleiste, mit der reinen weißen hintergrund, benutzerdefinierte cornerRadius, benutzerdefinierte Randbreite. Auch das habe ich deaktiviert, Grau-Hervorhebung, wenn auf Tippen Sie auf.
InformationsquelleAutor Alex Kolovatov
Versuchte ich Daroko Lösung, aber ich hatte ein problem, wenn Sie den hintergrund rein weiße Farbe (es ist Grau).
Meine Lösung die setSearchFieldBackgroundImage. ich möchte auch nicht darauf zu verlassen, Apfel Struktur, für die UITextField -
Ich verwendet UIImage Erweiterung von :
Erstellen UIImage mit solid color in Swift
InformationsquelleAutor Gal Danay
Dieser code ändert die Hintergrundfarbe des Textfeldes
Swift 4
bearbeitet: Beispiel einer UISearchBar in cyan
Funktioniert nicht für UISearchController, vielleicht klappt es ja für UISearchBar
in ios 11 wird nicht funktionieren. situation wie @HamishJohnson
Ich versuchte es erneut, und diese Linie der code funktioniert immer noch für mich, bearbeitete ich meine Antwort mit einem screenshot. Dies ist iOS 11
funktioniert bei mir mit xcode 9.3 iOS 11.3
InformationsquelleAutor Maruta