如何在HEXCOLOR(0xe3f3fbff)
中提供颜色CGContextSetRGBFillColor
?
答案 0 :(得分:5)
尝试
CGContextSetRGBFillColor(context, 0xe3 / 255.0, 0xf3 / 255.0, 0xfb / 255.0, 0xff / 255.0);
答案 1 :(得分:3)
CGContextSetRGBFillColor 需要R,G,B和alpha的 CGFloat 值(从0.0到1.0),因此您必须将十六进制颜色的每个组件转换为值介于0.0和1.0之间。
在你的情况下:
// R = 0xe3 / 0xff = 0.890
// G = 0xf3 / 0xff = 0.953
// B = 0xfb / 0xff = 0.984
// A = 0xff / 0xff = 1.000
CGContextSetRGBFillColor(context,0.89,0.953,0.984,1.0);
您可以将十六进制颜色字符串转换为r,g,b,这样的值:
NSString *color = @"0xe3f3fbff";
unsigned r,g,b,a;
[[NSScanner scannerWithString:[color substringWithRange:NSMakeRange(2,2)]] scanHexInt:&r];
[[NSScanner scannerWithString:[color substringWithRange:NSMakeRange(4,2)]] scanHexInt:&g];
[[NSScanner scannerWithString:[color substringWithRange:NSMakeRange(6,2)]] scanHexInt:&b];
[[NSScanner scannerWithString:[color substringWithRange:NSMakeRange(7,2)]] scanHexInt:&a];
CGContextSetRGBFillColor(context,r/255.0,g/255.0,b/255.0,a/255.0);