调整UIColor的alpha

Eri*_*ric 91 alpha objective-c uicolor ios

我将UIColorrgb 设置为a的背景UILabel.我正在努力调整alpha唯一的.如何修改现有rgb的alpha UIColor

编辑

基本上我UILabels有一套UIColor(使用rgb),我不知道它是什么颜色UILabels.在某个时刻,我将不得不改变labelsalpha`.我怎样才能更改标签颜色alpha?

Eri*_*ric 173

colorWithAlphaComponent: 做了伎俩.

所以我要做的是:

self.mylabel.backgroundColor = [self.myLabel.backgroundColor colorWithAlphaComponent:0.3];
Run Code Online (Sandbox Code Playgroud)

  • @Changerrs:有时我们需要将 alpha 应用于现有颜色。即现有颜色无法修改。因此,对于这种情况,我们已经有了一个颜色值,但随后需要对其应用 alpha,因此 colorWithAlphaComponent 对于这种情况很方便。 (2认同)

Gra*_*Sim 70

斯威夫特3和4

yourUIView.backgroundColor = UIColor.white.withAlphaComponent(0.75)
Run Code Online (Sandbox Code Playgroud)

斯威夫特2

yourUIView.backgroundColor = UIColor.whiteColor().colorWithAlphaComponent(0.75)
Run Code Online (Sandbox Code Playgroud)


小智 13

如果您定义了自定义颜色,也可以这样做:

view.backgroundColor = [[MyClass someColor] colorWithAlphaComponent:0.25];
Run Code Online (Sandbox Code Playgroud)


JZA*_*ZAU 8

为什么不用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];

}
Run Code Online (Sandbox Code Playgroud)


Pet*_*ara 7

版本Swift (5.4)

UIColor.blue.withAlphaComponent(0.5)
Run Code Online (Sandbox Code Playgroud)


Eth*_*len 6

最短的代码(Swift 5):

view.backgroundColor = .black.withAlphaComponent(0.75)
Run Code Online (Sandbox Code Playgroud)