Konvertieren Hex-Color-Code nach NSColor
Ich bin mit einigen Schwierigkeiten konvertieren einer ein hexcode zu einem NSColor. Hinweis: dies ist eine Mac-App (daher der NSColor anstatt UIColor). Dies ist der code den ich bisher:
- (NSColor *) createNSColorFromString:(NSString *)string {
NSString* hexNum = [string substringFromIndex:1];
NSColor* color = nil;
unsigned int colorCode = 0;
unsigned char red, green, blue;
if (string) {
NSScanner* scanner = [NSScanner scannerWithString:hexNum];
(void) [scanner scanHexInt:&colorCode];
}
red = (unsigned char) (colorCode >> 16);
green = (unsigned char) (colorCode >> 8);
blue = (unsigned char) (colorCode);
color = [NSColor colorWithCalibratedRed:(float)red / 0xff green:(float)green / 0xff blue:(float)blue / 0xff alpha:1.0];
return color;
}
Jede mögliche Hilfe würde geschätzt.
- Können Sie ein Beispiel für den Wert von
string
? - Und aus dieser Eingabe, welche Werte werden Sie immer in
red
,green
, undblue
? - Sicher. string = #339966
- Die Ausgabe für den oben genannten Wert 0.2 0.6 0.4 1 mit der letzten beng eine alpha.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Dauert es nicht alpha-Werte berücksichtigt, es wird davon ausgegangen Werte wie "FFAABB", aber es wäre einfach zu ändern.
Hier zwei sehr nützliche Makros
Hier ist der swift 2 kompatible version von Zlatan Antwort oben (und +1 auf ihn!):
Unterstützung für 7-hex-Arten:
http://stylekit.org/blog/2015/11/09/Supporting-7-Hex-color-types/
HINWEIS: Dies ist keine plug-and-play, Sie haben ein wenig zu Graben in den code. Aber es ist alles da und es ist wahrscheinlich schneller als Ihre eigenen Rollen.