调整UIColor的Alpha


106

我将UIColor使用rgb 设置为的背景UILabel。我正在尝试调整alpha唯一。如何修改现有rgb的alpha UIColor

编辑

基本上我UILabels有一套UIColor(使用rgb),我不知道它们是什么颜色UILabels。在某个时候,我将不得不更改labelsalpha`。如何更改标签颜色Alpha?


预定义的UIColor?对于标签,您可以使用.alpha属性。
LinusGeffarth

感谢您的回复!我有一个预定义的UIColor。我不想设置标签alpha,而是设置颜色alpha
Eric

Answers:


187

colorWithAlphaComponent: 做到了。

所以我要做的是:

self.mylabel.backgroundColor = [self.myLabel.backgroundColor colorWithAlphaComponent:0.3];

这种说法和这个说法有什么区别吗?UIColor(red:0.07, green:0.44, blue:0.54, alpha:0.4)
Changerrs

@Changerrs:在某些情况下,我们需要将alpha应用于现有颜色。即现有的颜色不能被修改。因此,在这种情况下,我们已经有一个颜色值,但是随后需要对其应用alpha值,因此colorWithAlphaComponent在这种情况下非常方便。
比沙尔·吉米尔

83

斯威夫特3&4

yourUIView.backgroundColor = UIColor.white.withAlphaComponent(0.75)

迅捷2

yourUIView.backgroundColor = UIColor.whiteColor().colorWithAlphaComponent(0.75)

13

如果定义了自定义颜色,也可以执行以下操作:

view.backgroundColor = [[MyClass someColor] colorWithAlphaComponent:0.25];

9

为什么不使用 label.alpha = 0.5?调整标签的Alpha值?

更新:如果要从旧颜色调整Alpha,请参考以下示例:

UIColor uicolor = [UIColor greenColor];
CGColorRef color = [uicolor CGColor];

int numComponents = CGColorGetNumberOfComponents(color);

UIColor newColor;
if (numComponents == 4)
{
    const CGFloat *components = CGColorGetComponents(color);
    CGFloat red = components[0];
    CGFloat green = components[1];
    CGFloat blue = components[2];
    newColor = [UIColor colorWithRed: red green: green blue: blue alpha: YOURNEWALPHA];

}

我不想设置标签Alpha,我想要设置标签颜色Alpha
Eric

有什么区别?
LinusGeffarth

如果我设置整个标签的alpha值,则文本也会变浅,因为我正在设置标签的背景颜色
Eric

@Eric您是说从现有的UIColor更改颜色的Alpha吗?
JZAU 2015年

2

请在以下代码中设置Alpha-

[UIColor colorWithRed:200.0/255.0 green:191.0/255.0 blue:231.0 /255.0 alpha:1.0]

我有该代码,但我只想修改Alpha
Eric

您想设置UIlabel的背景色并想更改UILabel的Alpha,对吗?请使用上面的代码
Santu C

[UIColor colorWithRed:200.0 / 255绿色:191.0 / 255蓝色:231.0 / 255 alpha:1.0]像这样修改
Arun

是的是的,对不起,我很抱歉
Santu C
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.