我正在尝试根据背景颜色确定textColor应该是黑色还是白色,但它似乎不起作用。首先,我创建了一个检索rgb值的扩展。然后我使用下面的算法来计算,然后确定该值是否高于186.问题是,每次我运行算法时它总是返回1左右,这远低于186应该是中间,它决定文本是否应该是黑或白。为了计算186左右的值,我做错了什么?我发现的是从这个问题中确定它是黑色还是白色
How to decide font color in white or black depending on background color?
Extenstion
extension UIColor {
var components:(red: CGFloat, green: CGFloat, blue: CGFloat, alpha: CGFloat) {
var r:CGFloat = 0
var g:CGFloat = 0
var b:CGFloat = 0
var a:CGFloat = 0
getRed(&r, green: &g, blue: &b, alpha: &a)
return (r,g,b,a)
}
}
viewDidLoad中
let colorComp = UIColor(rgba: "#f2f2f2").components
let colorCheck = colorComp.red * 0.299 + colorComp.green * 0.587 + colorComp.blue * 0.114
print(colorCheck)
在这种情况下,{p> red
,green
和blue
各返回0.949019607843137
。
答案 0 :(得分:1)
RGB范围从0(blak)到255(白色)但在这种情况下范围是0到1.您应该使用此操作计算新值:
值=(1/255)* 186 = 0.729;
0xF2 = 242 dec = 242/255 = 0.949