我需要确定选定的UIColor(由用户 Select )是暗的还是亮的,这样我就可以更改位于该 colored颜色 之上的一行文本的 colored颜色 ,以获得更好的可读性.

下面是Flash/ActionScript的示例(带演示): http://web.archive.org/web/20100102024448/http://theflashblog.com/?p=173

有什么 idea 吗?

干杯, 安德烈

UPDATE

感谢大家的建议,以下是工作代码:

- (void) updateColor:(UIColor *) newColor
{
    const CGFloat *componentColors = CGColorGetComponents(newColor.CGColor);

    CGFloat colorBrightness = ((componentColors[0] * 299) + (componentColors[1] * 587) + (componentColors[2] * 114)) / 1000;
    if (colorBrightness < 0.5)
    {
        NSLog(@"my color is dark");
    }
    else
    {
        NSLog(@"my color is light");
    }
}

再次感谢:)

推荐答案

W3C具有以下功能: http://www.w3.org/WAI/ER/WD-AERT/#color-contrast

如果您只处理黑色或白色文本,请使用上面的 colored颜色 亮度计算.如果低于125,请使用白色文本.如果是125或以上,请使用黑色文本.

编辑1:偏向黑色文本.:)

编辑2:使用公式为((红值*299)+(绿值*587)+(蓝值*114))/1000.

Ios相关问答推荐

OSLog(Logger)通过简单的字符串插值给出错误

Firebase SDK 10+—无法安装软件包

如何将模糊输入/模糊输出添加到SwiftUI中的非对称过渡?

IOS-获取本地化系统映像

如何使用 Rxswift 处理程序最喜欢的按钮

在 iOS 上启用明文本地流量在 .NET MAUI 中不起作用

垂直分页 UIScrollView 高度不正确

查找东南亚语言(泰语、高棉语、老挝语、缅甸语)中的单词边界

NSOperation 有延迟 - 它是异步的还是同步的?

包装在 AnyView 中时 UIViewControllerRepresentable 无法正常工作

滑动以返回特定的 SwiftUI 视图

Swift 错误:在其自己的初始值中使用的变量

Xcode 项目格式:3.1、3.2、6.3 和 8.0 有什么区别?

如何在react 导航中获取当前路由名称?

aps-environment 始终在发展

Sierra 中的安全/协同设计: keys 串忽略访问控制设置和 UI 提示权限

如果已安装,则重定向到应用程序,否则重定向到 App Store

如何识别导航堆栈中的前一个视图控制器

UIView 中的 safeAreaInsets 在 iPhone X 上为 0

如何找到 UILabel 的实际行数?