所以我尝试了你的代码,
UIColor *color = [UIColor blackColor];
CGFloat red;
CGFloat green;
CGFloat blue;
CGFloat alpha;
BOOL converted = [color getRed:&red green:&green blue:&blue alpha:&alpha];
NSLog(@"Converted: %@", converted?@"YES":@"NO");
NSLog(@"Red: %f", red);
NSLog(@"Green: %f", green);
NSLog(@"Blue: %f", blue);
NSLog(@"Alpha: %f", alpha);
你是对的,alpha 值有问题。但它似乎适用于 redColor、blueColor 等......我注意到的一点是,在尝试获取黑色 rgba 组件时,转换后的 BOOL 的值为 NO。我不能告诉你为什么会这样。我想你只需要解决它。
我还注意到,如果你用
[UIColor colorWithRed:0.0 green:0.0 blue:0.0 alpha:1.0];
您可以获得具有正确值的所有 4 个组件(rgb 和 a)。我想知道 blackColor 是如何创建颜色的,如果它是在另一个颜色空间中创建的,或者是什么使转换为 RGBA 变得不可能。