Farben in Swift definieren

Farben können per Code festgelegt werden, zum Beispiel wie folgt:

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

Mit einer Extension könnte 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)

Seit iOS 11 / Swift 4 ist es jedoch einfacher geworden. Denn Farben können seitdem im Assets-Katalog festgelegt und so global verfügbar gemacht werden. Eine so definierte Farbe kann dann auch im Interface Builder ausgewählt werden.

Dafür wählt man 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 Geschmacksache. 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.