我正在Swift中制作一个颜色选择器应用程序,我需要文本来适应背景颜色。
我的UIView上的文字默认为黑色,如果有较深的背景颜色,我希望它变浅,如果背景颜色较浅则使文字更暗,以使文字更具可读性。 / p>
以下是一些截图:
如果有可能,我会感谢您的回复。
答案 0 :(得分:8)
您可以执行以下操作:
extension UIColor
{
var isDarkColor: Bool {
var r, g, b, a: CGFloat
(r, g, b, a) = (0, 0, 0, 0)
self.getRed(&r, green: &g, blue: &b, alpha: &a)
let lum = 0.2126 * r + 0.7152 * g + 0.0722 * b
return lum < 0.50 ? true : false
}
}
将计算颜色的亮度并确定它是否高于某个阈值。然后说myLabel.textColor = view.backgroundColor?.isDarkColor == true ? .white : .black