我需要像facebook的导航栏一样的导航栏色调(在iOS 7中)
我选择了脸谱App的颜色并通过
设置[[UINavigationBar appearance] setBarTintColor:[UIColor colorWithHexString:@"#365491"]];
但显示wron颜色。颜色是正确的。我通过将其设置为普通视图的背景来测试该颜色。
以上代码的结果是
但我需要这样
此外,当我尝试通过设置具有相同颜色的视图背景时
如何重现像facebook这样的导航栏。
答案 0 :(得分:5)
在iOS7
中,您设置的UIColor
与屏幕上显示的颜色不同。相反,iOS
会稍微调整RGB
值并将其用作颜色。
要计算条形后面带有白色背景的颜色,您应该按照Bar Color Calculator中的说明使用这些公式:
从设计到UIColor
:
(n - 102)/ 0.6
从UIColor
转到设计:
(255 - n)/ 2.5 + n
其中n是R,G或B 0-255值。
因此,使用ColorPicker
或某些类似应用程序获得的内容不是您应该用于R,G和B的值。但这些是iOS从其他一些RGB值计算的值。要获得准确的值,您应该按照以下步骤操作。
使用上述公式中的值来计算确切的值。
For Eg: R_fromFB = (R – 102) / 0.6
So, R = (0.6 * R_fromFB) + 102
在导航栏中使用这些R,G和B值。
例如,您可以尝试使用此颜色:
[UIColor colorWithRed:(135/255.0) green:(153/255.0) blue:(189/255.0) alpha:1]
答案 1 :(得分:1)
我制作了一个特殊的BarTintColorOptimizer utility来优化半透明导航栏色调颜色,使条形图的实际颜色与iOS 7.x及更高版本中所需的颜色相匹配。
See this answer用于Facebook颜色设置示例。
答案 2 :(得分:0)
经过多次尝试后找到答案
if ([UINavigationBar instancesRespondToSelector:@selector(setBackgroundImage:forBarPosition:barMetrics:)]) {
[[UINavigationBar appearance] setBackgroundImage:[UIImage imageNamed:@"NavBarBGTile.png"] forBarPosition:UIBarPositionTopAttached barMetrics:UIBarMetricsDefault];
}
else{
[[UINavigationBar appearance] setTintColor:[UIColor colorWithHexString:kBlueColorHex]];
}