118
votes

I set a UIColor using rgb to a background of a UILabel. I'm trying to adjust the alpha only. How can I modify the alpha of an existing rgb UIColor?

Edit

Basically I have UILabels that have a set UIColor (using rgb), and I won't know what color the UILabels are. At a certain point, I will have to change the labels alpha`. How can I just change the labels color alpha?

7
Of a predefined UIColor? For a label you could use the .alpha property.LinusGeffarth
Thanks for the response!. I have a predefined UIColor. I don't want to set the labels alpha, but the colors alphaEric

7 Answers

199
votes

colorWithAlphaComponent: did the trick.

So what I had to do was:

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

Swift 3+

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

Swift 2

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

If you have custom colors defined, you can do this as well:

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

why not using label.alpha = 0.5 ? to adjust your label's alpha?

update: if you want to adjust alpha from a old color, here is an example:

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];

}
7
votes

Version Swift (5.4)

UIColor.blue.withAlphaComponent(0.5)
2
votes

Please set alpha in below code -

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

The shortest possible code (Swift 5):

view.backgroundColor = .black.withAlphaComponent(0.75)