Ich erstelle benutzerdefinierte Elemente in meiner App und möchte das Erscheinungsbild des neuen iOS anpassen. iOS 7 hat uns eine sehr häufige hellblaue Farbe eingeführt, die Standardfarbe oder -tönung für mehrere Elemente, einschließlich der Systemschaltfläche, der segmentierten Steuerung usw. Sie haben die Auswahl der Farbe mithilfe von IB vereinfacht, wie hier dargestellt:
Ich habe jedoch nicht herausgefunden, wie ich programmgesteuert einfach auf die Farbe zugreifen kann. Ich habe die UIColor-Dokumentation überprüft , und es scheint keinen Accessor für die blaue Systemfarbe in der Klasse selbst zu geben.
Hier ist meine Frage: Gibt es für diese Farbe einen einfachen Accessor? [UIColor ?]
oder so ähnlich? Wenn nicht, kennt jemand die genauen RGB-Werte für diese Farbe?
UIView().tintColor
, aber in der Tat können Sie nicht. Ich bin mir nicht sicher, zu welchem Zeitpunkt die UIView den Farbton erhält ...UIWindow
oder vielleicht seine Root-Ansicht hat die Originalversion. Ansichten erben ihre Farbtonfarbe von höheren Ansichten in der Responderkette, aber in Ihrem Beispiel hat die neue Ansicht keine Übersicht.self.view.tintColor
von innenUIViewController.viewDidLoad()
ergibt sich das rechte blau.Es scheint zu sein
[UIColor colorWithRed:0.0 green:122.0/255.0 blue:1.0 alpha:1.0]
.quelle
UIColor(red: 0.0, green: 122.0/255.0, blue: 1.0, alpha: 1.0)
Die blaue Standardfarbe für iOS 7 ist
R:0.0 G:122.0 B:255.0
quelle
0x007aff
Gemäß der Dokumentation für UIButton:
Angenommen, Sie ändern tintColor nicht, bevor Sie den Standardwert abgerufen haben, können Sie Folgendes verwenden:
quelle
sharedApplication()
hat keinkeyWindow
mittintColor
Hier ist eine einfache Methode, um die Standardfarbe des Systems zu erhalten:
quelle
dispatch_once
ist ziemlich gering und ist ein Einzelfall, wenn im allgemeinen Fall geprüft wird.UIColor
auf mehreren Threads zu verwenden. Das Einwickeln in adispatch_once
ermöglicht das sichere Abrufen dieser Farbe auf jedem Faden. Und wieder ist der Overhead sehr gering.Hex Farbcode
und Sie benötigen diese Bibliothek https://github.com/thii/SwiftHEXColors
ps. iOS, Swift
quelle
schnelle 4-Wege:
quelle
Diese Erweiterung gibt Ihnen die native blaue Farbe des Systems.
AKTUALISIEREN
Bitte vergessen Sie, was ich oben geschrieben habe, haben es gerade herausgefunden - es gibt eine native Erweiterung mit vordefinierten Systemfarben, nach denen wir gesucht haben, einschließlich Systemblau :
Sie können es direkt verwenden:
quelle
static let system = UIView().tintColor!
also immer noch viel besser als deine Variante.Erhalten Sie die Farbe automatisch mit diesem Code:
quelle
Die
UIWindow.tintColor
Methode funktionierte in iOS8 nicht für mich (sie war immer noch schwarz), also musste ich Folgendes tun:Dies ergab die richtige Blautönung, die in a zu sehen war
UIBarButtonItem
quelle
Ab iOS 7 gibt es eine API, und Sie können die Farbtonfarbe abrufen (und festlegen) mit:
Oder wenn Sie die CGColor benötigen:
quelle
In vielen Fällen brauchen Sie nur
oder für schnell
quelle
Während Sie die Farbe einstellen, können Sie die Farbe wie folgt einstellen
quelle
/255.0
mit jedemrgb
Wert geschrieben werden?Wenn Sie UIColor auf folgende Weise hinzufügen, wird es Ihnen jederzeit zur Verfügung gestellt oder die Definition in Ihrem Code geändert:
Sobald Sie die Kategorie in Ihren Code importiert haben, können Sie die Farbe folgendermaßen aufrufen:
quelle
blue
zured
in+ (instancetype)iOS7redColor;