UIColor Erweiterung für Hexadezimalwerte

Aus Wikizone
Version vom 6. Januar 2023, 09:08 Uhr von 134.3.86.14 (Diskussion)
(Unterschied) ← Nächstältere Version | Aktuelle Version (Unterschied) | Nächstjüngere Version → (Unterschied)
Wechseln zu: Navigation, Suche

Ungetestet über chatGPT erstellt

extension UIColor {
    convenience init(hex: String) {
        let scanner = Scanner(string: hex)
        scanner.scanLocation = 0

        var rgbValue: UInt64 = 0

        scanner.scanHexInt64(&rgbValue)

        let r = (rgbValue & 0xff0000) >> 16
        let g = (rgbValue & 0xff00) >> 8
        let b = rgbValue & 0xff

        self.init(
            red: CGFloat(r) / 0xff,
            green: CGFloat(g) / 0xff,
            blue: CGFloat(b) / 0xff, alpha: 1
        )
    }
}

Dies ist eine Erweiterung der UIColor-Klasse, die eine bequeme Initialisierungsfunktion enthält, die einen Hexadezimal-Farbwert als String akzeptiert und eine UIColor-Instanz erstellt.

Um die Farbe zu verwenden, kannst du dann einfach den Hexadezimal-Wert als String übergeben, wie hier gezeigt:

let color = UIColor(hex: "#aabbcc")

Um die Erweiterung der UIColor-Klasse im ganzen Projekt verfügbar zu machen, gibt es ein paar Möglichkeiten:

  1. Du kannst die Erweiterung in einem Swift-File schreiben und das File dann dem Projekt hinzufügen. Dann kannst du von jedem anderen File aus auf die Erweiterung zugreifen, indem du sie importierst.
  2. Du kannst die Erweiterung in einem Swift-File schreiben und das File dann zum Projektziel hinzufügen. Dann wird die Erweiterung automatisch zu jedem File hinzugefügt, das das Projektziel importiert.
  3. Du kannst die Erweiterung in einem Framework schreiben und das Framework dem Projekt hinzufügen. Dann kannst du von jedem anderen File aus auf die Erweiterung zugreifen, indem du das Framework importierst.