2011-12-01 117 views
2

我的问题可能很愚蠢。是否有[UIColor clearColor]的六位密码?如果是这样,代码是什么?提前致谢。用于清除颜色的十六进制代码

+0

六位码?你的意思是像#00000000? –

+0

对不起,但你需要一个clearColor颜色? –

+0

@MattiasWadman是的。 – iOS

回答

3
UIColor *clearColor = [UIColor clearColor]; 
CGFloat red = 0; 
CGFloat green = 0; 
CGFloat blue = 0; 
CGFloat alpha = 0; 

[clearColor getRed:&red green:&green blue:&blue alpha:&alpha]; 

NSLog(@"red: %.3f, green: %.3f, blue: %.3f, alpha: %.3f", 
red, green, blue, alpha); 

NSLog(@"red: 0x%02x, green: 0x%02x, blue: 0x%02x, alpha: 0x%02x", 
     (int)(red*255.0), (int)(green*255.0), (int)(blue*255.0), (int)(alpha*255.0)); 

的NSLog输出:

red: 0.000, green: 0.000, blue: 0.000, alpha: 0.000 
red: 0x00, green: 0x00, blue: 0x00, alpha: 0x00 
+0

不错。 clearColor == redColor? – beryllium

+0

嗯,我认为阿尔法应该是零,你测试运行它?当我这样做输出'红色:0.000,绿色:0.000,蓝色:0.000,alpha:0.000'。 –

+0

@beryllium很好的捕获,我发布了我的测试用例结果的意外,更正。 – zaph

4

据我所知,hexadecimal color codes由RRGGBB值组成,而[UIColor clearColor]非常依赖于存在一个alpha分量。

所以答案是“nope”,clearColor没有hexa码。

4

RGBA十六进制代码为ClearColor: NNNNNN00而N可以是任何己值(0-F)。

0

我喜欢在配置中使用十六进制的颜色,所以我修改的常用宏观分裂RGBA十六进制(例如#00000055半透明黑色)成的UIColor用α:

#define UIColorFromRGBA(rgbaValue) [UIColor \ 
colorWithRed:((float)((rgbaValue & 0xFF000000) >> 24))/255.0 \ 
green:((float)((rgbaValue & 0xFF0000) >> 16))/255.0 \ 
blue:((float)((rgbaValue & 0xFF00) >> 8))/255.0 \ 
alpha:((float)(rgbaValue & 0xFF))/255.0 ] 

实例:

cell.backgroundColor = UIColorFromRGBA(0x00000055); 
相关问题