【发布时间】:2014-05-25 14:42:36
【问题描述】:
我有一个 UIButton 由标题文本和单色背景组成。按钮绘制在白色的 UIView 上,标题文字为黑色。
我想在每次启动应用程序时随机为按钮的背景着色。 这是我的实现:
#define KEY_COLOR_R @"KEY_COLOR_R"
#define KEY_COLOR_G @"KEY_COLOR_G"
#define KEY_COLOR_B @"KEY_COLOR_B"
+ (void)setThemeColorRandomly {
//TODO: THEME COLOR NEEDS TO BE EASILY DISTINGUISHABLE WITH BLACK AND WHITE
float r = [Helper getRandomFloatBetweenLow:0 high:1];
float g = [Helper getRandomFloatBetweenLow:0 high:1];
float b = [Helper getRandomFloatBetweenLow:0 high:1];
[ModuleHelper cache_setFloat:r forKey:KEY_COLOR_R];
[ModuleHelper cache_setFloat:g forKey:KEY_COLOR_G];
[ModuleHelper cache_setFloat:b forKey:KEY_COLOR_B];
}
+ (UIColor *)themeColor {
float r = [ModuleHelper cache_floatForKey:KEY_COLOR_R];
float g = [ModuleHelper cache_floatForKey:KEY_COLOR_G];
float b = [ModuleHelper cache_floatForKey:KEY_COLOR_B];
return [UIColor colorWithRed:r green:g blue:b alpha:1];
}
+setThemeColorRandomly 在-didFinishLaunching 中被调用
现在我设置颜色:
[self.settingsButton setBackgroundColor:[CacheHelper themeColor]];
问题是,我需要避免颜色太浅(与背景混合)或太暗(与文本混合)。但我不想限制颜色的多样性,例如如果我将所有 3 种颜色的范围设置为 0.4-0.6,那么我会错过红色,它很容易区分白色和黑色
编辑:
我需要避免的颜色不仅仅是完全的黑白。我需要避免所有几乎无法区分的颜色。
关键部分是“可区分的”。例如,非常非常浅的蓝色背景是一个不好的选择。
【问题讨论】:
标签: ios cocoa-touch random uikit