2016-06-17 12 views
0

In meiner Anwendung ich diesen searchbar hinzugefügt haben:UISearchBar benutzerdefinierte

Image1

Ich habe versucht, den Knopf zu gestalten und es funktioniert super, ich bin mit

searchbar.setImage(UIImage(named: "Filter_icon"), forSearchBarIcon: .Bookmark, state: .Normal) 

und auf die Schaltfläche Symbol hat sich richtig geändert. Jetzt muss ich die Farbe des Icons ändern? Wie kann ich?

Vielen Dank im Voraus.

Antwort

1

Versuchen Sie, Ihren Bildrendering-Modus in Ihrem Asset-Katalog festzulegen.

IOS wählt den Wiedergabemodus des kontextabhängig, ein UIImageView Bildwiedergabemodus wird auf Original eingestellt werden, wenn ein UIButton Bildwiedergabemodus wird auf Vorlage eingestellt werden.

Sie können ihr Verhalten im Attribut-Inspektor erzwingen.

Wählen Sie zuerst das Bild in Ihrem Asset-Katalog. Sie sehen auf der Unterseite des Inspektors Render as.

Template image werden alle Farben auf die Tönung der Ansicht, außer Kraft setzen.
Wählen Sie Original image, um die Farbe Ihres Bildes beizubehalten. Default ist das Verhalten, das ich oben beschrieben habe.

Natürlich sollte Ihr Bild orange sein (wie mein Reifen ist grün).

enter image description here

+0

Es sieht gut aus, wenn ich also Vorlage auswähle, kann ich die Farbe des Symbols überschreiben, wenn ich das verstehe. Aber welche Methode sollte ich verwenden? – Jigen

+0

Es hängt von der Bedeutung der Farbe ab. Wenn orange der globale Farbton Ihrer App ist oder sich im Laufe der Zeit ändert, ist die Vorlage eine gute Lösung, da Sie die Farbe wechseln können, indem Sie die Eigenschaft 'Farbton' der Ansicht/des Fensters ändern. Tint wird geerbt, sodass untergeordnete Ansichten die gleiche Farbe haben wie ihre übergeordneten Elemente, wenn sie nicht überschrieben werden. Farbton ist eine 'UIView'-Eigenschaft, keine Bildeigenschaft. – Crazyrems

1

Der einfachste Weg ist Ihr Symbol Farbe ändern und als ursprüngliche Farbe machen

searchBar.setImage(UIImage(named: "Filter_icon")!.imageWithRenderingMode(UIImageRenderingMode.AlwaysOriginal), forSearchBarIcon: .Bookmark, state: .Normal) 
searchBar.showsBookmarkButton = true 
0

ich mein Problem schließlich Einstellung zwei verschiedene Lesezeichen Tasten gelöst. Ein blaues und ein grau wie folgt aus:

searchbar.setImage(UIImage(named: "Filter_icon_blue"), forSearchBarIcon: .Bookmark, state: .Normal) 
searchbar.setImage(UIImage(named: "Filter_icon_gray"), forSearchBarIcon: .Bookmark, state: .Normal) 

Ich schaffe zwei image_set in den assets.xcassets und ich ändern programmatisch diese.