Farben in Swift 4 definieren

Bisher war es üblich, Farben per Code festzulegen:

let backGround = UIColor(red: 215/255, green: 228/255, blue: 233/255, alpha: 1)

Mit einer Extension konnte man es noch etwas übersichtlicher gestalten:

extension UIColor
{
    convenience init(red: Int, green: Int, blue: Int)
    {
        let newRed = CGFloat(red)/255
        let newGreen = CGFloat(green)/255
        let newBlue = CGFloat(blue)/255

        self.init(red: newRed, green: newGreen, blue: newBlue, alpha: 1.0)
    }
}

let backGround = UIColor(red: 215, green: 228, blue: 233)

Mit iOS 11 / Swift 4 wird es jedoch einfacher. Denn nun ist es möglich, Farben im Assets-Katalog festzulegen und so global verfügbar zu machen. Eine solche Farbe kann dann auch im Interface Builder ausgewählt werden.

Dafür wählt Ihr Assets.xcassets aus. Dort sollte zumindest der Eintrag “AppIcon” vorhanden sein. Klickt nun mit der rechten Maustaste unterhalb dieses Eintrags die freie Fläche an und wählt dann “New Color Set” aus. Dies führt dazu, dass eine neue “leere” Farbe mit der Bezeichnung “Color” hinzugefügt wird. Zur Bearbeitung dieser Farbe muss jetzt der Attributes inspector aufgerufen werden (Tastenkombination alt + cmd + 4). Wie Ihr dem Screenshot entnehmen könnt, lassen sich die Farbwerte unter “Red”, “Green” und “Blue” eintragen.

Colors in Assets.xcassets

Im Interface Builder findet man nun – nach der Auswahl eines Elements – im Attributes inspector die so definierte Farbe im Abschnitt “Named Colors”.

Select a color in the interface builder

Und im Code kann diese Farbe wie folgt zugewiesen werden:

let backGround = UIColor(named: "backGround")

Welchen Weg man bei der Festlegung der Farbe wählt, ist freilich auch Geschmackssache. Die Definition über den Assets-Katalog hat aber den Vorteil, dass die Farbe sowohl im Code als auch im Interface Builder zur verfügung steht.

Durch Benutzung dieser Website erklären Sie sich mit der Verwendung von Cookies einverstanden. Mehr Informationen

Die Verwendung von Cookies dient dazu, Inhalte und Anzeigen zu personalisieren, Funktionen für soziale Medien anbieten zu können und die Zugriffe auf diese Website zu analysieren. Außerdem werden Informationen zur Nutzung dieser Webseite an Partner für soziale Medien, Werbung und Analysen weitergegeben.

Schließen