UINavigationBar tintColor mit Farbverlauf
Ich würde das gerne ändern programmaticaly die tintColor
eine UINavigationBar und halten Sie den Verlauf als in den Interface Builder.
Wenn ich das tintColor
in meinem code, der gradient verschwindet aber wenn ich die tintColor
im Interface Builder, der Farbverlauf gehalten.
Irgendwelche Ideen?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Also das ist eine alte Frage, aber ich stolperte über es, wenn ich war auf der Suche nach etwas, das klingt wie das Frage, aber ist anders. In der Hoffnung, dass es jemand anderes helfen (oder jemand anderes, die mir zeigen, einen besseren Weg)...
Wie setzen Sie einen benutzerdefinierten Farbverlauf auf eine UINavigationBar?
Laß uns zuerst unsere eigenen Verlauf, die Art, wie wir normalerweise tun würde (Als CALayer):
Dort gehen wir, ein Farbverlauf, der aussieht wie eine fragwürdige make-up-Wahl von ein punk-rocker, die gut ist, wie dieser code ist für die hypothetischen app ich Habe Ein Punk-Rocker Mit Fragwürdigen Geschmack In Meiner Tasche. Dass der name mich ein wenig zu lang..
Nun möchte ich diese Ebene auf meinem UINavigationBar, das sollte einfach sein, ja? Fügen Sie ihn einfach als Unterschicht, richtig? Das problem hier ist, wird es vertuschen, die wunderbare Knöpfe und so Zeug, dass die UINavigationController gibt Sie. Das ist schlecht.
Stattdessen schauen wir uns die wunderbare bequeme Methode, die wir in iOS5+ für das verändern des Erscheinungsbildes alle die UINavigationBar(s) in unserer app:
Das einzige problem hier ist, dass wir nicht über ein UIImage, wir haben einen CALayer. Was ist ein punk-rocker Enthusiasten zu tun?
So, jetzt haben wir umgebaut unsere CALayer zu einem UIImage (hoffentlich), so dass alle, die bleibt, ist zu setzen:
Was ich mag über diese Lösung ist
Aber ich bin immer noch nicht davon überzeugt, dass es der beste Weg. Also, genießen Sie, wenn es Ihnen hilft, lassen Sie mich wissen, wie Sie zu verbessern, wenn Sie können.
~ Dank
Legen Sie den barStyle zu UIBarStyleBlackTranslucent
Legen Sie die tintColor wie diese:
Damit wird der entsprechende gradient. Verwenden Sie, was die Kombination, die Sie brauchen.
Ich schrieb es als UIImage-Erweiterung für Swift 2.0. Vielleicht ist es von nutzen.
Nennen mag:
Guter Weg, verwenden maskView