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

标签 ios swift2

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

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

我该怎么做??

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

这是我得到的

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/

相关文章:

ios - 在 UICollectionView 中检测触摸

ios - 使用 Core Data 和服务器同步实现软删除或存档的最佳方式

ios - 为什么我在执行 selector :withObject:@YES in iOS, 时总是得到 NO,这在 macOS 中是不同的?

android - 如何从 native 应用程序使用 Kurento 媒体服务器?

ios - UIProgressView 设置为图像? UIprogressView 整个contentView,向下?

ios - Swift-Uicollectionview- Collection View 中间的中心单元格

swift - 使用条件分支(If 语句)获取时间

ios - NSRegularExpression 错误,我不能使用正则表达式

arrays - 如何制作一个函数,将协议(protocol)中定义的任何函数作为其参数?

swift 2.0 : Protocol extensions: Two protocols with the same function signature compile error