我正在尝试获得苹果音乐应用程序的效果,您已经注意到无论背景是什么,文本颜色始终保持可读,例如:
看到黑色背景上的绿色...
我只是想让我的文字更亮(白色)或更暗(黑色)(根据背景图像的颜色)
我该怎么做??
是的,这是真的,以前在这里问过类似的问题,我也检查过
这是我得到的
this 问题回答说获取图像的平均颜色然后查看图像是更暗还是更亮并相应地更改文本颜色
但是这个问题是基于 Obj C 的,而且获取平均颜色的方法也在 Obj C 中
那么我怎样才能快速做到这一点??
最佳答案
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 可以混合在一个项目中,cocoa pods 会为您设置。如果您还没有使用过 cocoa pods,有很多关于如何开始的很好的教程,包括在他们的网站上。
关于ios - 苹果的音乐应用程序如何定义用于文本的颜色以使其可读?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39385604/