Ich möchte meine Registerkartenleistenelemente so ändern, dass sie bei Auswahl anstelle des Standardblau rosa sind.
Wie kann ich dies mit dem Storyboard-Editor in Xcode 6 erreichen?
Hier sind meine aktuellen Einstellungen, die nicht funktionieren. Der blaue Hintergrund funktioniert, aber das Rosa funktioniert nicht:
Antworten:
Fügen Sie das Runtime Color-Attribut "tintColor" aus StoryBoard hinzu. Dies funktioniert ( für Xcode 8 und höher ).
Wenn Sie nicht ausgewählte Farben möchten, können Sie auch hinzufügen
unselectedItemTintColor
.quelle
UITabBarItem
, auf derUINavigationController
mit meiner Registerkarte verbundenen Leiste festlegen und es funktioniert einwandfrei. Alles ohne Code zu schreiben, was großartig ist, da ich eine VC-Klasse dreimal wiederverwenden werde. Vielen Dank!Diese elegante Lösung funktioniert hervorragend mit SWIFT 3.0 , SWIFT 4.2 und SWIFT 5.1 :
Auf dem Storyboard:
Bearbeiten: Arbeiten mit Xcode 8/10 für iOS 10/12 und höher .
quelle
In Swift können Sie mit xcode 7 (und höher) Folgendes zu Ihrer AppDelegate.swift-Datei hinzufügen:
So sieht die vollständige Methode aus:
Im obigen Beispiel ist mein Artikel weiß. Das "/255.0" wird benötigt, weil es einen Wert von 0 bis 1 erwartet. Für Weiß hätte ich auch 1 verwenden können. Für andere Farben werden Sie wahrscheinlich RGB-Werte verwenden.
quelle
Am habe
Xcode8
ich dasImageTint
vom Storyboard geändert und es funktioniert gut.Das Ergebnis:
quelle
Swift 3 | Xcode 10
Wenn Sie möchten, dass alle Elemente der Registerkartenleiste dieselbe Farbe haben (ausgewählt und nicht ausgewählt) ...
Schritt 1
Stellen Sie sicher, dass Ihre Bildelemente auf Rendern als = Vorlagenbild eingerichtet sind . Dadurch können sie Farbe erben.
Schritt 2
Verwenden Sie den Storyboard-Editor, um die Einstellungen Ihrer Registerkartenleiste wie folgt zu ändern:
Schritt 3
Die Schritte 1 und 2 ändern die Farbe für das ausgewählte Symbol. Wenn Sie die Farbe der nicht ausgewählten Elemente weiterhin ändern möchten, müssen Sie dies im Code tun. Ich habe keine Möglichkeit gefunden, dies über den Storyboard-Editor zu tun.
Erstellen Sie eine benutzerdefinierte Controller-Klasse für Registerkartenleisten ...
... und weisen Sie die benutzerdefinierte Klasse Ihrem Szenencontroller in der Registerkartenleiste zu.
Wenn Sie herausfinden, wie Sie die nicht ausgewählte Symbolfarbe über den Storyboard-Editor ändern können, lassen Sie es mich bitte wissen. Vielen Dank!
quelle
self.tabBar.unselectedItemTintColor = UIColor.white
self.tabBar.tintColor = #colorLiteral(red: 0.2, green: 0.7333333333, blue: 0.3450980392, alpha: 1)
Arbeite für michFügen Sie diesen Code in viewDidLoad des Ansichtscontrollers ein, dessen Farbe Sie ändern möchten
quelle
Sie können die Farbfarbe der ausgewählten Bildleiste auch über den Tastenpfad festlegen:
Hoffe das wird dir helfen !! Vielen Dank
quelle
XCode 8.2, iOS 10, Swift 3: Jetzt gibt es ein
unselectedItemTintColor
Attribut fürtabBar
:quelle
Sie können die Farben UITabBarItem per Storyboard ändern, aber wenn Sie die Farben per Code ändern möchten, ist dies sehr einfach:
// Verwenden Sie diese Option, um die Farbe des ausgewählten Balkens zu ändern
// Dies zum Ändern der nicht ausgewählten Leiste (iOS 10)
// Und diese Zeile zum Ändern der Farbe aller Registerkarten
quelle
Irgendwie können wir die Farbe des ausgewählten Elements in der Registerkartenleiste nicht allein mit dem Storyboard ändern. Daher habe ich in meinem ViewDidLoad den folgenden Code hinzugefügt. Ich hoffe, dies hilft.
quelle
Fügen Sie diesen Code in die Funktion -did_finish_launching_with_options Ihres App-Delegaten ein
Stellen Sie das RGB der gewünschten Farbe ein
quelle
Dies ist die Lösung in Swift 3, die in iOS 10 funktioniert:
Zunächst erstellen Sie Ihre eigene Tab-Bar-Controller-Unterklasse und fügen sie Ihrem Tab-Controller in Ihrem Storyboard hinzu. In der
viewDidLoad()
Methode können Sie dann die Registerkartenleiste anpassen. Hierbei ist zu beachten, dass dastintColor
Attribut von dietabBar
Farbe des ausgewählten Elements darstellt, nicht die Farbe der nicht ausgewählten! Um die Farbe der nicht ausgewählten Elemente zu ändern, empfehle ich, jedes Element zu durchlaufen und die Originalfarben Ihrer Bilder zu verwenden, damit sie nicht automatisch als grau gerendert werden.Der einzige Nachteil bei diesem Ansatz ist, dass Ihre Artikelbilder bereits die gewünschte Farbe haben müssen, die Sie anstreben.
quelle
Dieser beste Weg ist, das
Image Tint
Storyboard zu ändernquelle
Sie können die Unterklasse festlegen
UITabBarController
und die im Storyboard durch diese ersetzen.viewDidLoad
Rufen Sie in Ihrer Implementierung der Unterklasse Folgendes auf:quelle
'UITabBar' does not have a member named 'setSelectedImageTintColor'
self.tabBar.setSelectedImageTintColor = UIColor.greenColor
nicht sicher, ob das richtig ist oder nichttintColor
nichtselectedImageTintColor
, übrigensselectedImageTintColor
ist in iOS 8 veraltet.