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.

dev.nikolaz
quelle
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!

dev.nikolaz
quelle
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];
Vadoff
quelle
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 .

Zeeawan
quelle
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;

            }
chings228
quelle
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!

FabKremer
quelle