ios导航栏色彩像facebook app

时间:2013-09-27 06:27:06

标签: ios facebook uinavigationbar ios7

我需要像facebook的导航栏一样的导航栏色调(在iOS 7中)

我选择了脸谱App的颜色并通过

设置
[[UINavigationBar appearance] setBarTintColor:[UIColor colorWithHexString:@"#365491"]];

但显示wron颜色。颜色是正确的。我通过将其设置为普通视图的背景来测试该颜色。

以上代码的结果是 enter image description here

但我需要这样enter image description here

此外,当我尝试通过设置具有相同颜色的视图背景时 enter image description here

如何重现像facebook这样的导航栏。

3 个答案:

答案 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值计算的值。要获得准确的值,您应该按照以下步骤操作。

  1. 使用适用于Facebook导航栏的ColorPicker获取R,G和B的值。
  2. 使用上述公式中的值来计算确切的值。

    For Eg: R_fromFB = (R – 102) / 0.6 So, R = (0.6 * R_fromFB) + 102

  3. 在导航栏中使用这些R,G和B值。


  4. 例如,您可以尝试使用此颜色:

    [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]];
  }