NSAttributedString:如何使用颜色模拟不透明度或 alpha 等价物

NSAttributedString: How to mimic opacity or alpha equivalent using color

我正在使用 NSAttributedString 作为按钮标题,并且希望能够“变灰”或降低某些文本的 alpha 或容量。 NSAttributedString 似乎不允许您修改文本的不透明度或 alpha 值,但允许您使用以下方法调整颜色:

NSMutableAttributedString *text = 
 [[NSMutableAttributedString alloc] 
   initWithAttributedString: label.attributedText];
[text addAttribute:NSForegroundColorAttributeName 
             value:[UIColor redColor] 
             range:NSMakeRange(10, 1)];

或:

let range = (mainString as NSString).range(of: stringToColor)
let mutableAttributedString = NSMutableAttributedString.init(string: mainString)
mutableAttributedString.addAttribute(NSAttributedString.Key.foregroundColor, value: UIColor.red, range: range)

在这种情况下,起始颜色是系统蓝。是否有任何公式可以让我将系统颜色修改为相当于 0.5 的 alpha 值(或不透明度)?

感谢您的任何建议。

您可以使用

更改任何颜色的 alpha
UIColor.red.withAlphaComponent(0.5)

当然要知道原色

没有通用的 alpha 修饰符。