如何将UILabel的textColor与其背景相匹配?

 kkq--_771 发布于 2023-02-05 13:16


我有一个背景图片,上面有一些UILabel.
用户可以将背景图像更改为任何颜色,而我必须确定哪种颜色可以更好地用于UILabels,白色还是黑色?

最好的例子是iOS 7 Home Screen.
当背景暗时,文本变为白色,反之亦然.
但是,当背景介于黑暗和光线之间时,例如:半图像100%白色,另一半100%黑色 - 文本变为白色,并添加阴影效果,因此它将是可读的.

我一直面临的问题是如何指出这是什么类型的图像?
天黑了吗?这很轻吗?它是在暗光之间吗?
我怎样才能将这一点变为人类对代码的清晰度?

我明显想自己编写代码,但我不知道.
我开始学习对比度和亮度,但我无法将各个部分粘在一起.
我应该从哪里开始?非常感谢!

1 个回答
  • 通过此链接查找平均颜色

    然后设置文本样式

    CGFloat red = 0.0, green = 0.0, blue = 0.0, alpha = 0.0;
    [averageColor getRed:&red green:&green blue:&blue alpha:&alpha];
    
    int threshold = 105;
    //Formula for computing Luminance out of R G B, which is something close to luminance = (red * 0.3) + (green * 0.6) + (blue * 0.1).
    int bgDelta = ((red * 0.299) + (green * 0.587) + (blue * 0.114));
    
    UIColor *textColor = (255 - bgDelta < threshold) ? [UIColor blackColor] : [UIColor whiteColor];
    

    这样的事情.

    您还可以使用上面的链接UIColor从图像中获取并使用亚光的 UIColor 类别来获得亮或暗.

    看看这个问题.肯定会帮助你.

    PS:我正在复制代码,以便即使删除帖子,也可以获得信息

    2023-02-05 22:14 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有