UIColor Erweiterung für Hexadezimalwerte
Aus Wikizone
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:
- 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.
- 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.
- 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.