设置状态栏色调颜色

Pat*_*ick 1 uinavigationbar uitoolbar ios uistatusbar ios6

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

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

[self.navigationController setNavigationBarHidden:YES];
Run Code Online (Sandbox Code Playgroud)

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

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

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

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

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

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

使用导航栏 - 蓝色状态栏没有导航栏 - 黑色状态栏

Pat*_*ick 6

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

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

    屏幕截图

这样,您的状态栏将选择正确的颜色而不显示导航栏.

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

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

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