设置状态栏色调颜色

时间:2012-11-27 13:28:46

标签: ios ios6 uinavigationbar uitoolbar uistatusbar

我有一个标签栏应用程序,状态栏色调颜色设置为默认值 - 因此在我的应用程序中始终是我选择的蓝色。

但是,在一个视图中,我隐藏了我的导航栏:

[self.navigationController setNavigationBarHidden:YES];

这是viewWillAppear方法,可以访问该视图,因为它是我应用的标签之一。

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

我已设置工具栏的色调颜色,但此视图上的状态栏始终为黑色。有没有办法重新设置此视图的状态栏,或者是否有更好的方法隐藏导航栏以保留状态栏色调。

UPDATE 我在某处读到当着色设置为默认值时,状态栏的颜色将是标题中最低像素的颜色。

我尝试将导航栏隐藏在故事板中,并尝试将色调颜色更改为“自定义”,但这也没有效果。

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

With Navigation Bar - blue status bar Without Navigation Bar - black status bar

3 个答案:

答案 0 :(得分:6)

稀释!!!我有一个有效的解决方案......虽然这是一个非常肮脏和临时的解决方案。

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

    Screen Capture

  5. 这样,您的状态栏将在不显示导航栏的情况下选择正确的颜色。

    希望更有弹性/更好的方法是在最近的Xcode更新中。

    热门提示: 要使工具栏看起来像导航栏:

    1. 将工具栏-1定位在Y轴上
    2. 创建一个标签(没有文字),高度为44像素,宽度为320像素,位置为0,0。这将是标签栏的底部边框。为获得最佳效果,请截取应用页面的屏幕截图并使用软件获取边框的颜色 - 这是阴影开始前标签中最暗的部分(使用此颜色作为标签的背景)。

答案 1 :(得分:0)

Change statusBarStyle of application-
[[UIApplication sharedApplication] 
      setStatusBarStyle:UIStatusBarStyleDefault animated:NO];

答案 2 :(得分:0)

如果您使用的是iOS 6.0,则可以通过plist文件设置状态栏颜色。见 - How to set status bar tint color on iOS 6?

  

From iOS 6 release notes;

     

状态栏

     

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

[编辑]

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