设置状态栏色调颜色

我有一个标签栏应用程序和状态栏的色调设置为默认 – 所以它始终是我select的蓝色在我的应用程序。

然而,在一个视图中,我隐藏了我的导航栏,如下所示:

[self.navigationController setNavigationBarHidden:YES]; 

这是在viewWillAppear方法和视图是可访问的,因为它是我的应用程序的选项卡之一。

我隐藏它的原因是因为我想在其位置放置一个工具栏(大约6个button)。

我已经设置了我的工具栏的色调,但是,这个视图上的状态栏总是黑色的。 有没有办法重新设置这个视图的状态栏,或者有更好的方法来隐藏导航栏,以保持状态栏的色调颜色。

更新我读的地方,当着色设置为默认情况下,状态栏的颜色将是头中最低像素的颜色。

我试图隐藏故事板中的导航栏,也尝试将色彩颜色更改为“自定义”,但这也没有影响。

这两个截图可能说明我的问题。 切换导航栏将更改状态栏的颜色。 这是有问题的视图所embedded的导航控制器。

与导航栏 - 蓝色状态栏没有导航栏 - 黑色状态栏

啊! 我有一个工作解决scheme…尽pipe是一个非常肮脏的临时解决scheme。

  1. 只需隐藏故事板中的导航栏(如问题图片所示 – 取消选中Shows Navigation Bar )。
  2. 将导航栏拖到视图中。
  3. Alpha设置为0并取消选中User Interaction Enabled不要隐藏
  4. 确保导航栏位于顶部 – 如下图所示。

    屏幕捕捉

这样你的状态栏会select正确的颜色而不显示导航栏。

希望有一个更灵活/更好的方式来做到这一点将在最近的Xcode更新。

重要提示:使一个工具栏看起来像一个导航栏:

  1. 将工具栏-1放置在Y轴上
  2. 创build一个高度为44px,宽度为320px,位置为0,0的标签(不带文本)。 这将是标签栏的底部边框。 为获得最佳效果,请截取应用程序页面的屏幕截图,并使用软件获取边框的颜色 – 这是阴影开始前(使用此颜色作为标签背景)之前选项卡中最黑暗的部分。
 Change statusBarStyle of application- [[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleDefault animated:NO]; 

如果您使用iOS 6.0,则可以通过plist文件设置状态栏颜色。 请参阅 – 如何在iOS 6上设置状态栏的色调颜色?

从iOS 6发行说明;

状态栏

现在可以在应用的Info.plist文件中设置状态栏的色调参数。 您可能会这样做,以确保状态栏颜色与启动过程中应用的导航栏颜色相匹配。 要设置状态栏的色调,请将UIStatusBarTintParameters项添加到Info.plist文件中。 此键的值是一个字典,其中包含适当的值,用于描述应用程序在启动时的导航栏。 在字典里应该是UINavigationBar键,它的值也是一个字典。 该字典包含初始导航栏的样式(使用Style键),并指示它是否半透明(使用半透明键)。 您还可以指定导航栏的色调(使用TintColor键)或其自定义背景图像的名称(使用BackgroundImage键)。

[编辑]

在iOS 6中,状态栏颜色似乎是由导航栏颜色自动确定的。 在隐藏导航栏之前,您可以将导航栏的颜色设置为默认值,并查看是否有任何区别。