So ändern Sie die Hintergrundfarbe von UISearchBar in iOS7


75

Wie ändere ich die Hintergrundfarbe von UISearchBar in iOS7?

Geben Sie hier die Bildbeschreibung ein

nicht grau, ich möchte die Farbe wie meine Navigationsleiste ändern

Wenn ich diesen Code verwende, kommt das heraus

searchBar.backgroundColor = [UIColor redColor];

Geben Sie hier die Bildbeschreibung ein

Das ist keine rote Farbe !!! Genau die gleiche Situation wie in der Hintergrundfarbe der Navigationsleiste.


Ist das nur ich oder kann ich deine Bilder nicht sehen?
user4951

Antworten:


186

Benötigt werden:

searchBar.barTintColor = [UIColor redColor];

Geben Sie hier die Bildbeschreibung ein

Alles danke!


3
Ist dies eine Möglichkeit, die Transparenz in der Suchleiste zu entfernen? weil die Farbe nicht wirklich rot ist!
Aladdin Gallas

5
@ AladdinGallas Sie setzen einfach die durchscheinende Eigenschaft von UISearchBar auf NEIN wie folgt:[searchbar setTranslucent:NO];
Pavan

Ich möchte dieser Leiste abgerundete Ecken hinzufügen. wie kann ich das machen?
Anish

1
Dies gibt dem Balken einen roten Ton, aber dieser Ton hat immer noch Transparenz / Alpha. Gibt es eine Möglichkeit, das loszuwerden und eine reine Farbe als Farbton zu erhalten?
Julian B.

4
Setzen Sie den Suchleistenstil auf UISearchBarStyleMinimal, bevor Sie die reine Farbe erhalten.
Jeroen

59

Stellen Sie das Hintergrundbild auf ein klares Bild ein und los geht's. Dies ist auch mit Pre-iOS 7 kompatibel.

searchBar.backgroundImage = [[UIImage alloc] init]
searchBar.backgroundColor = [UIColor redColor];

3
Dies ist eine wirklich gute Antwort Verwenden Sie clearColor, wenn Sie ein minimales Design mit Weiß im TextField
StackRunner

33

Wenn die oben genannten Lösungen nicht funktionieren, stellen Sie sicher, dass Sie den Suchleistenstil auf Minimal gesetzt haben .

[self.searchDisplayController.searchBar setSearchBarStyle:UISearchBarStyleMinimal];

Und für einfache Suchleiste

[self.searchBar setSearchBarStyle:UISearchBarStyleMinimal];

Der SearchBar-Stil kann auch vom Interface Builder auf Minimal eingestellt werden .


6

Es funktioniert nicht wirklich für mich oder manchmal, wenn Sie es auch versuchen

for (UIView *view in [[filterTextField.subviews objectAtIndex:0] subviews]){
                if ([NSStringFromClass([view class]) isEqualToString:@"UISearchBarBackground"])
                    view.alpha = 0;

            }

1
Die if-Klausel könnte einfach sein if ([view isKindOfClass: UISearchBarBackground).
franklsf95

@ franklsf95 Es würde nicht funktionieren, da es eine undokumentierte Klasse ist.
Jbouaziz

4

Wenn die UISearchBar im MainStoryBoard definiert wurde, klicken Sie einfach auf diese UISearchBar und sehen Sie sich die Optionen an, die Sie rechts verarbeiten können. Wenn Sie dort drüben auf die vierte Registerkarte klicken (die wie ein Schild aussieht), haben Sie die Option Balkentönung. Dort können Sie die gewünschte UISearchBar-Farbe auswählen.

Wenn nicht, können Sie programmatisch so etwas tun:

    UISearchBar* sb =[[UISearchBar alloc] init];
    sb.backgroundColor=[UIColor redColor];

Ich hoffe das hilft!

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.