2012-10-26 52 views
2

我正在做很多程序化界面自定义,比如渐变和边框,并且对如何修改颜色(给定HSV或RGB值)以产生色调和阴影(请参阅示例)感兴趣。我知道色彩是一种颜色+白色,而阴影是一种颜色+黑色。iPhone iOS如何以编程方式创建色调和阴影?

是否有一些算法可用于采用默认的iOS颜色,如蓝色,并以编程方式创建该颜色的几种色调和阴影?

谢谢!

Tints and shades

Creating tints and shades

+0

不认为有什么“内置的”...你将不得不尝试找到一些C的HSV算法并使用它们。 – nielsbot

回答

-2

可以使用。

[UIColor colorWithRed:29.0/255.0 green:42.0/255.0 blue:74.0/255.0 alpha:1.0]; 

例如,如果非要给导航栏的色调颜色比

self.navigationController.navigationBar.tintColor = [UIColor colorWithRed:29.0/255.0 green:42.0/255.0 blue:74.0/255.0 alpha:1.0]; 
+0

我想你误解了这个问题。他正在寻找一种算法来从单一颜色创建不同的阴影。 – sosborn

+0

是的,我试图避免硬编码任何东西,而是想在我的界面中使用诸如“20%阴影的蓝色”或“10%的红色”之类的颜色。 –

3

对不起,我不是在我的电脑,所以我可以的算法就不写出来了,但是这是你所需要的方法:

+ (UIColor *)colorWithHue:(CGFloat)hue saturation:(CGFloat)saturation brightness:(CGFloat)brightness alpha:(CGFloat)alpha 

你选择你的起始色相和饱和度(饱和度大概应该是在1.0,但做什么是适合您的情况),然后你在一个循环递增明亮值来获得新的阴影。可能最好有一个数组,您可以将颜色放入,然后您可以返回该数组并根据需要使用它。

+0

通过减少亮度可以得到阴影。内置颜色从1.0(最大)的亮度开始。添加白色以创建色彩似乎更复杂 –