TabBar控制器中的黑暗状态栏?

时间:2018-03-29 00:37:22

标签: ios swift uitabbarcontroller

我有这个奇怪的问题,我的状态栏全黑,只有当我使用标签栏控制器时。有没有办法来解决这个问题?我显然希望它与导航栏颜色相同。

enter image description here

这是我的故事板中导航和标签栏控制器的屏幕截图。

enter image description here

6 个答案:

答案 0 :(得分:3)

  1. 您可以更改info.plist行查看基于控制器的状态栏外观并将其设置为SELECT * FROM tablea a WHERE startDate <= endDate OR (startDate IS NOT NULL AND endDate IS NULL)
  2. 然后将这行代码放在NO的{​​{1}}

    appDelegate.swift

答案 1 :(得分:1)

尝试将基于View控制器的状态栏外观添加到info.plist并将值设置为NO。并在app delegate中添加:

UIApplication.shared.statusBarStyle = .lightContent

或者

尝试覆盖此方法:

override var preferredStatusBarStyle: UIStatusBarStyle {
    return .lightContent
}

答案 2 :(得分:1)

此问题似乎是导航栏未覆盖状态栏的背景。您应该将视图控制器嵌入导航控制器中,而不是直接添加导航栏。

答案 3 :(得分:1)

UINavigationBar在你设置的颜色方面有一些奇怪的行为。正如其他成员指出的那样,您必须将半透明布尔值设置为false,但这并不是要让您的条形图与您尝试设置的颜色相匹配。它会很接近,但如果仔细观察,它将不是您尝试使用的确切颜色。为了在UINavigationBar上设置真实颜色,你需要了解它在做什么。

假设我想将我的UINavigationBar设置为这种冷色绿色。

这将是RGB值:R = 90 | G = 200 | B = 95

UINavigationBar将做的是通过赋予绿色“光泽”外观来应用它的内置样式。对我们来说,结果是它采用了我们的绿色RGB值,并将每个值提高了20倍。

如果你仔细观察,上面的绿色方块与UINavigationBar显示的绿色方块不完全匹配。这看起来稍微亮一点。

要解决此问题,只需将您想要用于应用程序中UINavigationBar的颜色的RBG值减少20。

所以R = 90 | G = 200 | B = 95将变为R = 70 | G = 180 | B = 75

答案 4 :(得分:1)

我认为在你的情况下你应该尝试改变statusView背景颜色。

更好的地方是setupAppearances func,它在app的开头调用。

let yourColor: UIColor = .gray
UIApplication.shared.statusBarView?.backgroundColor = yourColor

答案 5 :(得分:1)

通过我看到你的状态栏看起来很好的外观,因为它的颜色是深色的

您需要做的是更改导航控制器中的条形色彩,如下所示

enter image description here

在属性检查器上更改它

enter image description here

希望这有帮助