我一直在尝试复制渐变UINavigationBar
用作自定义渐变UIButton
同一视图上的子类对象。
但是我不明白这些颜色是如何得出的?也就是说,您只需指定一种颜色即可设置UINavigationBar
的背景颜色-tintColor
- 但它创建了一个漂亮的渐变,看起来至少有 4 种颜色?
我真的只是对“内部”顶部和底部颜色感兴趣 - 就在栏周围的 1px 边框内......不过外部“边框”颜色确实看起来不同。
EDIT - 1
经过进一步研究,似乎 HSB(而不是最初想到的 RBG)值被操纵以获得这些不同的颜色。
还有一个方便的方法UIColor
获取 HSB 值,这应该会有所帮助:
getHue:saturation:brightness:alpha:
到目前为止找到的有用参考资料
HSL 和 HSV 维基 http://en.wikipedia.org/wiki/HSL_and_HSV#Color-making_attributes
UIColor 类参考 http://developer.apple.com/library/ios/#documentation/uikit/reference/UIColor_Class/Reference/Reference.html
以编程方式淡化颜色 https://stackoverflow.com/questions/141855/programmatically-lighten-a-color
摘自《交互式计算机图形学基础》一书 http://marcocorvi.altervista.org/games/imgpr/rgb-hsl.htm
EDIT - 2
如果您不知道可以为背景设置渐变UIButton
以编程方式,这里有一些关于如何执行此操作的参考:
UI按钮和核心动画层的乐趣 http://www.cimgf.com/2010/01/28/fun-with-uibuttons-and-core-animation-layers/
创建时尚 UIButton 的五个技巧 http://mobile.tutsplus.com/tutorials/iphone/custom-uibutton_iphone/(感谢 @cdo 提供此链接)
EDIT - 3
我整理了一个电子表格,显示 HSB 值中的原始颜色和“内部”渐变颜色(忽略最外面的颜色)UINavigationBar
及其相应的“后退”按钮(标题无关且始终显示为白色)。
以下是 Google 文档的链接,其中包含我为一些示例颜色收集的信息:
注意:这些值是通过使用适用于 iOS 6.1 的视网膜 3.5 英寸 iPhone 模拟器(Xcode 版本 4.6)保存屏幕截图并使用 PhotoShop 观察 HSB 值而找到的。
赏金奖励标准
我已经对这个问题进行了悬赏,以吸引更多人关注它,并希望得到一个好的答案。我正在寻找的答案:
提供一种计算/近似(在大多数情况下)设置后创建的“内部顶部”和“内部底部”渐变颜色(请参阅电子表格)的 RGB 或 HSB 值的方法tintColor
on UINavigationBar
.
如果您还提供了计算“后退”按钮上的“内顶部”和“内底部”渐变颜色的方法(类似于导航栏,但我发现了这些),则会授予奖励积分(高于初始赏金)颜色通常看起来稍微“暗”)?