1

我有一个选项卡栏应用程序,状态栏色调颜色设置为默认值 - 所以它始终是我在整个应用程序中选择的蓝色。

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

[self.navigationController setNavigationBarHidden:YES];

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

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

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

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

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

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

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

4

3 回答 3

6

啊!!!我有一个可行的解决方案......虽然是一个非常肮脏和临时的解决方案。

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

    屏幕截图

这样,您的状态栏将获得正确的颜色,而不会显示导航栏。

希望在最近的 Xcode 更新中能有一种更有弹性/更好的方法来做到这一点。

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

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

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

来自 iOS 6 发行说明;

状态栏

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

[编辑]

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

于 2012-11-27T14:49:50.650 回答
0
Change statusBarStyle of application-
[[UIApplication sharedApplication] 
      setStatusBarStyle:UIStatusBarStyleDefault animated:NO];
于 2012-11-27T13:32:46.403 回答