我在将十六进制代码转换为NSColor时遇到了一些问题。请注意,这是用于Mac应用程序的(因此使用NSColor而不是UIColor)。这是我目前拥有的代码:
- (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;
}
希望能得到任何帮助。
string
值的示例吗? - Andrew Madsen红色
、绿色
和蓝色
的值? - Peter Hosey