我一直在尝试从UINavigationBar
复制梯度以用作同一视图上自定义UIButton
子类对象的渐变。如何复制UINavigationBar的渐变颜色?
但是,我无法弄清楚颜色是如何派生的?也就是说,您只指定一种颜色来设置UINavigationBar
的背景颜色 - tintColor
- 但它创建了一个很好的渐变效果,至少有4种颜色?
虽然我真的只是对“内部”顶部和底部颜色感兴趣 - 只是在酒吧周围的1px边框内......外部“边框”颜色确实显得不同。
编辑 - 1
经进一步研究,它出现在HSB(而不是作为RBG首先想到的)值是被操纵来获得这些不同的颜色。
还有上UIColor
一个方便的方法来获取HSB值,这应该是有帮助的:
getHue:saturation:brightness:alpha:
有益的参考迄今发现
Programmatically Lighten a Color
From the book Fundamentals of Interactive Computer Graphics
编辑 - 2
如果你不知道,你可以设置一个UIButton
编程背景的梯度,这里是如何做到这样的一些参考:
FUN WITH UIBUTTONS AND CORE ANIMATION LAYERS
Five Tips for Creating Stylish UIButtons(荣获@cdo提供此链接)
编辑 - 3
我已经把一个电子表格示出原始和“内”渐变颜色(不考虑最外层颜色)上UINavigationBar
在HSB值和与其对应的“后退”按钮(标题是无关的,并始终显示白色)。
这里有一个链接到谷歌文档与我收集了几个样品的颜色信息:
https://docs.google.com/spreadsheet/ccc?key=0AnKVtzkNS9scdGVRN01pa1NQcC1hdThNbEVzQU8wRlE&usp=sharing
注:使用视网膜保存截图发现这些值,3.5"用于iOS 6.1的iPhone模拟器(Xcode版本4.6),并使用PhotoShop注视HSB值。
BOUNTY奖励标准
我已经开了一个赏金对这一问题带来更多的接触到它,并希望得到一个很好的答案。我正在寻找的答案:
提供一种计算/紧密近似(大多数情况下)后创建的“内部顶部”和“内部底部”渐变颜色(请参阅电子表格)的RGB或HSB值的方法在UINavigationBar
上设置tintColor
。
如果您还提供了一种方法来计算“背部”按钮上的“内部顶部”和“内部底部”渐变颜色(与导航栏相似,但I已经发现这些颜色通常会稍微“变暗”)?
太晚了赏金,但希望有人会发现我的回答有用反正... – danh 2013-03-12 02:46:57