如何复制UINavigationBar的渐变颜色?

JRG*_*per 5 iphone cocoa ios

我一直在尝试复制渐变,UINavigationBarUIButton在同一视图上用作自定义子类对象的渐变.

但是,我无法弄清楚颜色是如何衍生出来的?也就是说,你只需指定一种颜色来设置UINavigationBar背景颜色tintColor- 但是它创建了一个漂亮的渐变,它似乎至少有4种颜色?

我真的只对"内部"顶部和底部颜色感兴趣 - 只是在酒吧周围的1px边框内部...外部"边框"颜色确实看起来确实不同.

编辑 - 1

经过进一步的研究,似乎HSB(而不是首先想到的RBG)值被操纵以获得这些不同的颜色.

UIColor获取HSB值还有一种方便的方法,这应该是有用的:

getHue:saturation:brightness:alpha:
Run Code Online (Sandbox Code Playgroud)

迄今为止发现的有用参考资料

HSL和HSV Wiki

UIColor类参考

以编程方式减轻颜色

来自交互式计算机图形学基础

编辑 - 2

如果您不知道可以通过UIButton编程方式为背景设置渐变,请参考以下有关如何执行此操作的参考:

与UIBUTTONS和核心动画层的乐趣

创建时尚UIButton的五个技巧(感谢@cdo提供此链接)

编辑 - 3

我已经把显示原始电子表格,并在HSB值的"内部"渐变颜色(不考虑最外层的颜色)UINavigationBar及其相应的"后退"按钮(标题是无关紧要的,始终显示白色).

以下是Google文档的链接,其中包含我为一些示例颜色收集的信息:

https://docs.google.com/spreadsheet/ccc?key=0AnKVtzkNS9scdGVRN01pa1NQcC1hdThNbEVzQU8wRlE&usp=sharing

注意:通过使用视网膜保存屏幕截图,使用适用于iOS 6.1的3.5英寸iPhone模拟器(Xcode版本4.6)以及使用PhotoShop轻松获取HSB值,可以找到这些值.

BOUNTY AWARD CRITERIA

我已经开启了这个问题的赏金,以便更多地接触它,并希望得到一个好的答案.我正在寻找的答案:

提供一种计算/近似(在大多数情况下)设置tintColor开启后创建的"内部顶部"和"内部底部"渐变颜色(参见电子表格)的RGB或HSB值的方法UINavigationBar.

积分授予(上述初始奖金发行)如果还提供用于计算"内部顶部"和"返回"按钮(其类似于所述导航栏"内底"渐变颜色的方法,但我发现这些颜色看起来通常略微"暗")?

Den*_*cik 7

简答:它不是渐变

长答案:应用色调颜色后,在其上面呈现透明的叠加图像.

它被称为:UITintedTopBarHighlight@2x.png它在UIKit艺术品中.(上传到这里:http://cl.ly/image/2c2V3t1D1T3L)

它是2x88像素图像,必须在有色背景上水平重复.

对于后退按钮,它非常相似,但也有一个面具给它的形状.UItintedBackButtonHighlight和UITintedBackButtonMask.