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

how apple's music app defines which color to use for text to make them readable?

我正在尝试获得苹果音乐应用程序的效果,您已经注意到无论背景是什么,文本颜色始终保持可读,例如: 看到黑色背景上的绿色...

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

我该怎么做??

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

这是我得到的

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

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

那么我如何才能在 swift 中做到这一点??

Objective-C 和 Swift 之间很容易转换。我强烈建议你在空闲时间练习一下,因为有很多好的 iOS 代码 samples/tutorials 基于 Objective-C,而且 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 可以混合在一个项目中, cocoa pods 为您设置。如果您还没有使用过 cocoa pods,有很多关于如何开始的好教程,包括在他们的网站上。