Ich verwende eine Auswahlansicht, damit der Benutzer das Farbthema für die gesamte App auswählen kann.
Ich plane, die Farbe der Navigationsleiste, des Hintergrunds und möglicherweise der Registerkartenleiste zu ändern (falls dies möglich ist).
Ich habe nachgeforscht, wie das geht, kann aber keine Swift-Beispiele finden. Könnte mir bitte jemand ein Beispiel für den Code geben, den ich zum Ändern der Farbe der Navigationsleiste und der Textfarbe der Navigationsleiste verwenden müsste?
Die Auswahlansicht ist eingerichtet. Ich suche nur nach dem Code, um die Farben der Benutzeroberfläche zu ändern.
quelle
Hier sind einige sehr grundlegende Anpassungen des Erscheinungsbilds, die Sie app-weit anwenden können:
Weitere Informationen zur
UIAppearance
API in Swift finden Sie hier: https://developer.apple.com/documentation/uikit/uiappearancequelle
Aktualisiert für Swift 3, 4, 4.2, 5+
Swift 4
Swift 4.2, 5+
Überprüfen Sie auch hier: https://github.com/hasnine/iOSUtilitiesSource
quelle
Fügen Sie diese Zeile einfach
didFinishLaunchingWithOptions
in Ihren Code ein.quelle
In AppDelegate hat dies das Format der NavBar global geändert und die untere Zeile / den Rand (der für die meisten Menschen ein Problembereich darstellt) entfernt, um Ihnen das zu geben, wonach Sie und andere meiner Meinung nach suchen:
Dann können Sie eine Constants.swift einrichten Datei einrichten. Darin enthalten ist eine Style-Struktur mit Farben und Schriftarten usw. Anschließend können Sie jedem ViewController eine tableView / pickerView hinzufügen und das Array "availableThemes" verwenden, damit der Benutzer themeColor ändern kann.
Das Schöne daran ist, dass Sie für jede Farbe eine Referenz in Ihrer gesamten App verwenden können. Diese wird basierend auf dem vom Benutzer ausgewählten "Thema" aktualisiert. Ohne eine Referenz wird standardmäßig das Thema1 () verwendet:
quelle
Dazu im Storyboard (Interface Builder Inspector)
Mithilfe von
IBDesignable
können wir dem Interface Builder Inspector weitere Optionen hinzufügenUINavigationController
und diese im Storyboard optimieren. Fügen Sie Ihrem Projekt zunächst den folgenden Code hinzu.Stellen Sie dann einfach die Attribute für den Navigationscontroller im Storyboard ein.
Dieser Ansatz kann auch verwendet werden, um die Farbe des Navigationsleisten-Texts aus dem Storyboard zu verwalten:
quelle
Swift 4:
Perfekt funktionierender Code zum Ändern des Erscheinungsbilds der Navigationsleiste auf Anwendungsebene.
Viel Spaß beim Codieren!
quelle
arbeitete für mich
quelle
SWIFT 4 - Reibungsloser Übergang (beste Lösung):
Wenn Sie von einem Navigationscontroller zurückkehren und auf dem Navigationscontroller, den Sie verwendet haben, eine andere Farbe einstellen müssen
anstatt es in viewWillAppear zu platzieren, ist der Übergang sauberer.
SWIFT 4.2
quelle
In Swift 4
Sie können die Farbe der Navigationsleiste ändern. Verwenden Sie einfach das folgende Code-Snippet in
viewDidLoad()
Farbe der Navigationsleiste
Textfarbe der Navigationsleiste
Für die Navigationsleiste mit großen Titeln für iOS 11 müssen Sie die
largeTitleTextAttributes
Eigenschaft verwendenquelle
Die
appearance()
Funktion funktioniert bei mir nicht immer. Daher ziehe ich es vor, ein NC-Objekt zu erstellen und seine Attribute zu ändern.Auch wenn Sie ein Bild anstelle von nur Text hinzufügen möchten, funktioniert dies ebenfalls
quelle
Verwenden Sie die Darstellungs-API und die Farbe barTintColor.
quelle
iOS 8 (schnell)
quelle
Wenn Sie den Navigationscontroller angepasst haben, können Sie den obigen Codeausschnitt verwenden. In meinem Fall habe ich also folgende Codeteile verwendet.
Swift 3.0, XCode 8.1-Version
Text der Navigationsleiste:
Es sind sehr hilfreiche Gespräche.
quelle
Swift 4, iOS 12 und Xcode 10 Update
Setzen Sie einfach eine Zeile ein
viewDidLoad()
quelle
In Swift 2
Zum Ändern der Farbe in der Navigationsleiste,
Zum Ändern der Farbe in der Elementnavigationsleiste,
oder
quelle
Swift 3
Dadurch wird die Farbe Ihrer Navigationsleiste wie die Farbe der Facebook-Leiste festgelegt :)
quelle
Swift 3 und Swift 4 kompatibler Xcode 9
Eine bessere Lösung, um eine Klasse für allgemeine Navigationsleisten zu erstellen
Ich habe 5 Controller und jeder Controller-Titel wird in orange Farbe geändert. Da jeder Controller 5 Navigations-Controller hat, musste ich jede einzelne Farbe entweder vom Inspektor oder vom Code ändern.
Also habe ich eine Klasse erstellt, anstatt jede Navigationsleiste von Code zu ändern. Ich habe diese Klasse einfach zugewiesen und sie hat bei allen 5 Controller-Code-Wiederverwendungsfunktionen funktioniert. Sie müssen diese Klasse nur jedem Controller zuweisen und das wars.
quelle
iOS 10 Swift 3.0
Wenn es Ihnen nichts ausmacht, schnelle Frameworks zu verwenden, ändern Sie mit UINeraida den Navigationshintergrund als
UIColor
oderHexColor
oderUIImage
und ändern Sie den Text der Navigationstaste programmgesteuert. Ändern Sie die Farbe des vollständigen Vordergrundtextes.Zum
UINavigationBar
quelle
Swift 3
Einfacher Einzeiler, den Sie verwenden können
ViewDidLoad()
quelle
Diese Version entfernt auch die 1px-Schattenlinie unter der Navigationsleiste:
Swift 5: Fügen Sie dies in Ihre AppDelegate didFinishLaunchingWithOptions ein
quelle
ich musste es tun
Andernfalls würde sich die Hintergrundfarbe nicht ändern
quelle
Setzen Sie zuerst die isTranslucent-Eigenschaft von navigationBar auf false, um die gewünschte Farbe zu erhalten. Ändern Sie dann die Farbe der Navigationsleiste wie folgt:
quelle
Stellen Sie sicher, dass der Schaltflächenstatus auf .normal eingestellt ist
PS iOS 12, Xcode 10.1
quelle
topItem
Lösung gesucht . Es ist frustrierend, wie viele Änderungen Apple weiterhin an der Anwendung von Stilen auf die Navigation vornimmt.Rufen Sie einfach diese Erweiterung auf und übergeben Sie die Farbe, die automatisch die Farbe der Navigationsleiste ändert
In der Ansicht Didload oder in der Ansicht wird Aufruf angezeigt
self.navigationController? .setNavigationBarColor (Farbe: <# T ## UIColor #>)
quelle
quelle
Ich schreibe dies für diejenigen, die immer noch Probleme mit den Lösungen hier haben.
Ich verwende Xcode Version 11.4 (11E146). Derjenige, der für mich arbeitet, ist:
ABER!, Wenn Sie die barTintColor im Storyboard auf einen anderen Wert als "Standard" setzen, haben diese 2 Codezeilen keine Auswirkung.
Seien Sie also vorsichtig und setzen Sie im Storyboard die Standardeinstellung barTintColor zurück. Oh Apple ...
quelle
Fügen Sie diese Zeilen zu Ihrem AppDelegate in der Funktion didFinishLaunchingWithOptions hinzu:
Diese Zeile dient zum Hintergrund Ihrer Navigationsleiste.
Diese Zeile ist, wenn Ihr nicht durchscheinend zu falsch ist, zeigt sie weiße Farbe in der Navigation.
Diese Zeile ist für Ihre Texte und Symbole in der Navigationsleiste
Diese Zeile bringt uns dazu, alles auf Ihre Navigationsleiste zu bringen.
quelle