如何更改现有背景颜色的 Alpha 通道

How to change the alpha channel of an existing background color

我有一个 UITextField,它的背景色已经应用了 rgb。我正在尝试设置背景颜色的 alpha。如何在不将整个 rgb 颜色重新插入 Objective-c 的情况下设置 alpha?

您可以使用:

UIColor *color = ...;
color = [color colorWithAlphaComponent:0.5f];

您正在寻找这样的东西:

CGFloat newAlpha = 0.7;
CGColorRef color = CGColorCreateCopyWithAlpha(self.yourTextField.layer.backgroundColor, newAlpha);
[self.yourTextField.layer setBackgroundColor:color];

或者如果您已经知道颜色并且只想要当前的 alpha:

CGFloat alpha = CGColorGetAlpha(self.yourTextField.layer.backgroundColor); //Get current alpha       
self.yourTextField.layer.backgroundColor = [UIColor colorWithRed:1.0 green:1.0 blue:1.0 alpha:alpha].CGColor;

在 Swift 3 或 4:

let color: UIColor = UIColor.black.withAlphaComponent(0.7)