gpt4 book ai didi

ios - 如何以编程方式计算状态栏的正确文本颜色?

转载 作者:行者123 更新时间:2023-11-28 19:54:52 26 4
gpt4 key购买 nike

我正在开发一个 iOS 应用程序,用户可以在其中选择应用程序的主要颜色(以及状态栏颜色)。是否有任何函数可以从 RGB 或 HEX 颜色开始以编程方式计算状态栏上的白色或黑色文本颜色是否更好?

最佳答案

这就是我所做的。总之 - 获取颜色的 RGB 值。然后根据 RGB 值计算灰度值。然后根据灰度选择状态栏样式。

第 1 步 - 从 UIColor 获取 RGB 值:

UIColor *color =  // your color
CGFloat red, green, blue, alpha;

if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) {

CGFloat white;
if ([color getWhite:&white alpha:&alpha]) {
red = green = blue = white;
} else {
NSLog(@"Uh oh, not RGB or grayscale");
}
}

第 2 步 - 从 RGB 值计算灰度值:

CGFloat gray = 0.299 * red + 0.587 * green + 0.114 * blue;

第 3 步 - 选择状态栏样式:

UIStatusBarStyle style = gray > 0.6 ? UIStatusBarStyleDefault : UIStatusBarStyleLightContent;

使用 0.6 通常有效。您可能需要根据自己的喜好进行调整。

关于ios - 如何以编程方式计算状态栏的正确文本颜色?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27065181/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com