mam*_*mcx 5 iphone cocoa-touch uikit uicolor
我知道如何得到一个随机的UIColor,但我想知道是否存在一种只返回具有某种特定质量的颜色的方法.我不知道是否存在一个特定的术语,但是,例如,我只需要获得不透明的颜色,深色调......对于背景上有明亮文本/图像的颜色.
我可以亲自挑选一些,但在我的情况下,我想为一大堆图标背景提供一个非常好的默认值.
更新:
我的解决方案基于这里的答案:
float r = arc4random() % 12;
return [UIColor colorWithHue:(30*r)/360 saturation:0.5f brightness:0.8f alpha:1.0f];
Run Code Online (Sandbox Code Playgroud)
我得到了一个很小的可能答案列表,但这给了我一个良好的开端.
我要做的是使用 HSV/HSL 颜色空间,然后将结果转换为 RGB。保持您喜欢的恒定值和饱和度(S 和 V),然后根据您想要的颜色数量更改色调 (H) 值。将结果转换为 RGB,您将获得一组看起来可以很好地协同工作的颜色。您可以创建任何一组“饱和”、“亮”、“暗”等漂亮颜色,只需根据您的需要选择 S 和 V 的良好组合即可(低 V 为暗,高 V 为亮,低 S 为不饱和,高S为饱和)。
请查看此 wiki 页面,了解有关将 HSV 转换为 RGB 的讨论。我建议您从饱和度 (S) 为 0.5、值 (V) 为 0.8 开始。然后,要生成漂亮的颜色,请对 H 值 0、30、60、90... 一直到 360 进行 HSV -> RGB 转换。它将生成一个漂亮的调色板,这些颜色在一起看起来很好。稍后,如果您想要不同的颜色“质量”,您可以调整 S 和 V 值。
| 归档时间: |
|
| 查看次数: |
1430 次 |
| 最近记录: |