Apple的音乐应用程序如何定义用于文本的颜色以使其可读?

时间:2016-09-08 08:01:30

标签: ios swift2

我试图获得苹果音乐应用程序的效果,你注意到无论背景是什么,文本颜色总是保持可读性,例如:enter image description here 看到黑色背景上的绿色......

我只想让我的文字更亮(白色)或更暗(黑色)(根据背景图片的颜色)

我该怎么做?

是的,之前在这里问过真正类似的问题,我也检查了它们

这是我得到的

this问题答案说要获得图像的平均颜色,然后查看图像是更暗还是更亮并相应地更改文字颜色

但是这个问题是基于Obj C的,而且获得平均颜色的方法是在Obj C中

所以我怎么能在swift中做到这一点?

1 个答案:

答案 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都可以混合在一个项目中,可可豆荚为你设置它。如果你还没有使用可可豆荚,那么有许多关于如何开始的好教程,包括在他们的网站上。