4

我需要一个导航栏的色调,比如 facebook 的导航栏(在 iOS 7 中)

我选择了 facebook App 的颜色并将其设置为

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

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

上面代码的结果是 在此处输入图像描述

但我需要这样在此处输入图像描述

此外,当我尝试设置具有相同颜色的视图背景时 在此处输入图像描述

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

4

3 回答 3

5

iOS7中,UIColor您设置的颜色与屏幕上显示的颜色不同。相反,会稍微iOS调整您的值并将其用作颜色。RGB

要计算条形后面的白色背景颜色,您应该使用条形颜色计算器中解释的这些公式:

从设计到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 值。


例如,您可以尝试使用这种颜色:

[UIColor colorWithRed:(135/255.0) green:(153/255.0) blue:(189/255.0) alpha:1]
于 2013-09-27T07:00:35.377 回答
1

我制作了一个特殊的BarTintColorOptimizer 实用程序,用于优化半透明导航栏的色调,使导航栏的实际颜色与 iOS 7.x 及更高版本中所需的颜色相匹配。

有关 Facebook 颜色设置示例,请参阅此答案

于 2015-11-24T18:14:02.260 回答
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]];
  }
于 2013-10-07T09:30:30.793 回答