清除颜色的十六进制代码

4

我的问题可能很傻。是否有[UIColor clearColor]的十六进制代码?如果有,那么它是什么?提前谢谢。


十六进制代码?你是指像 #00000000 这样的吗? - Mattias Wadman
你需要颜色来清除透明吗? - Marco Pace
@MarcoPace,我需要仅使用十六进制代码来表示颜色。因此,我查看了使用clearColor代码的选项。 - iOS
2
那么我猜 #00000000 就代表它了。[UIColor clearColor][UIColor colorWithRed:0.0f green:0.0f blue:0.0f alpha:0.0f] 是一样的。 - Mattias Wadman
每种颜色都可能是透明的。只需将 alpha 通道设置为 0 即可。 - beryllium
这个链接会对你有所帮助:http://www.color-hex.com/ - Sam
4个回答

8

RGBA十六进制代码用于ClearColor: NNNNNN00其中N可以是任何十六进制值(0-F)。


4
据我所知,十六进制颜色代码由RRGGBB值组成,而[UIColor clearColor]非常依赖于有alpha分量的存在。
因此答案是否定的,“clearColor”没有十六进制代码。

4
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

嗯,我认为alpha应该是零,你测试运行了吗?当我运行它时,输出是 红色:0.000,绿色:0.000,蓝色:0.000,alpha:0.000 - Mattias Wadman
@beryllium,你发现得真好,我不小心发布了我的测试用例结果,已经更正。 - zaph

0

我喜欢在我的配置中使用十六进制颜色,因此我修改了一个常用的宏来将RGBA十六进制(例如#00000055半透明黑色)拆分为带有alpha的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);

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接