如何在 Xcode 8 上将状态栏设置为“Light”(最好不要通过代码)

Posted

技术标签:

【中文标题】如何在 Xcode 8 上将状态栏设置为“Light”(最好不要通过代码)【英文标题】:How to set the status bar to "Light" on Xcode 8 (preferably not by code) 【发布时间】:2017-01-27 16:39:54 【问题描述】:

除了使用preferredStatusBarStyle 之外,还有其他方法可以在Xcode 8 上将状态栏设置为“Light”吗?例如,最好通过 Plist 文件来完成。

【问题讨论】:

【参考方案1】:

终于弄明白了,不需要代码,您只需在项目设置中将“状态栏样式”设置为 Light,然后在您的 plist 中添加行“查看基于控制器的状态栏外观”,其值为 NO。就这么简单,不需要实现你所有的 UIViewControllers...

【讨论】:

这适用于一个简单的应用程序,但最终让您的*** ViewControllers 决定状态栏颜色会更好。如果状态栏样式需要根据 ios 版本改变怎么办?或者,如果你有一些 VC 想要改变它怎么办? (即,如果您有一个浅色状态栏和一个用于预览文件的屏幕,如照片应用程序,您可能需要黑色背景并将状态栏样式更改为浅色)。【参考方案2】:

代码你如何设置它,所以说“最好不要通过代码”是没有意义的。您不是根据您的 偏好执行此操作,而是根据 API。该 API 是每个***视图控制器都规定了它希望状态栏如何显示:如果您希望状态栏始终亮起,则必须覆盖每个将成为***视图控制器中的 preferredStatusBarStyle 属性. (在导航控制器的情况下,您可以通过设置它的栏样式轻松地做到这一点;对于其他内置的父视图控制器,您的子视图控制器可能会被自动查询。)

【讨论】:

我已经知道这种方式,但最好的解决方案是覆盖所有视图控制器,这不太可能。我确信有更好的方法来做到这一点。 这不是“不太可能”。这就是你所做的。你可能不喜欢它,但你应该停止挣扎,去做,然后继续前进。仅仅因为您碰巧不喜欢真相而对我投反对票是没有意义的;它仍然是事实。 唯一的“捷径”方法是将所有内容放在容器视图控制器中,并让 it 指示状态栏,在一个地方。例如,一个 UINavigationController 可以做到这一点,但我所说的仍然是正确的。

以上是关于如何在 Xcode 8 上将状态栏设置为“Light”(最好不要通过代码)的主要内容,如果未能解决你的问题,请参考以下文章

在 XCode 8.2 / Swift 3.0 中更改状态栏样式(没有“查看基于控制器的状态栏外观”)

如何使用swift3增加导航栏的高度并更改xcode 8中状态栏的颜色?

即使设置为亮,状态栏也保持黑色

iPhone/iOS 状态栏未隐藏在 Xcode 项目中

Xcode隐藏白色状态栏ios 10

如何反转状态栏的深色和浅色内容以适应 Xcode 中的深色模式