【问题标题】:Why does my status bar (despite being set to "black opaque") turn grey when I change the navigationController's background color?当我更改导航控制器背景颜色时,为什么我的状态栏(尽管设置为“黑色不透明”)变成灰色?
【发布时间】:2013-07-28 21:13:18
【问题描述】:

在我的应用程序中,我在应用程序目标的“摘要”下将状态栏的样式设置为黑色不透明。但是,当我用self.navigationController.view.backgroundColor = self.view.backgroundColor; 更改我的navigationController 的背景颜色时,颜色突然变为灰色。

之前:

之后:

这是为什么?我能做些什么来防止这种情况发生?

尽管它在应用程序摘要中设置为黑色不透明,但当我 NSLog 时它显示为半透明。为什么?

【问题讨论】:

    标签: ios objective-c uiview navigationcontroller


    【解决方案1】:

    您应该禁用状态栏着色。来自 iOS 6.0 发行说明:

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

    【讨论】:

    • 这是我现在设置的:i.imgur.com/RcC3gK6.png 然后我什至删除了它,它仍然显示为灰色。
    • 看起来状态栏在运行时已变为半透明。在更改导航控制器背景颜色之前检查[UIApplication sharedApplication].statusBarStyle 的值。
    • 如果我使用NSLog(@"%d", [UIApplication sharedApplication].statusBarStyle);,它在变为灰色之前和之后都会给我1
    • 但是如果我检查它是否等于UIStatusBarStyleTranslucent 它说是。什么?
    【解决方案2】:

    呻吟。我的 AppDelegate 将其更改为半透明。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-11-06
      • 2014-11-11
      • 2010-11-25
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多