我试图获得苹果音乐应用程序的效果,你注意到无论背景是什么,文本颜色总是保持可读性,例如: 看到黑色背景上的绿色......
我只想让我的文字更亮(白色)或更暗(黑色)(根据背景图片的颜色)
我该怎么做?
是的,之前在这里问过真正类似的问题,我也检查了它们
这是我得到的
this问题答案说要获得图像的平均颜色,然后查看图像是更暗还是更亮并相应地更改文字颜色
但是这个问题是基于Obj C的,而且获得平均颜色的方法是在Obj C中
所以我怎么能在swift中做到这一点?
答案 0 :(得分:1)
Objective-C和Swift之间很容易转换。我强烈建议你在业余时间练习这个,因为有很多基于Objective-C的好的iOS代码示例/教程,并且SDK是相同的,所以它值得一段时间。
至于手头的问题,你可以在Swift中获得这样的颜色组件:
let color = UIColor(red: 0.12, green: 0.12, blue: 0.12, alpha: 1)
var red:CGFloat = 0
var green:CGFloat = 0
var blue:CGFloat = 0
var alpha:CGFloat = 0
color.getRed(&red, green: &green, blue: &blue, alpha: &alpha)
let threshold:CGFloat = 105/255
let bgDelta = ((red * 0.299) + (green * 0.587) + (blue * 0.114))
let textColor = ((1 - bgDelta) < threshold) ? UIColor.blackColor() : UIColor.whiteColor()
首先找到平均颜色,您可以使用this pod。它是用Objective-C编写的,但Swift和Obj-C都可以混合在一个项目中,可可豆荚为你设置它。如果你还没有使用可可豆荚,那么有许多关于如何开始的好教程,包括在他们的网站上。