如何在 iOS 7 启动期间更改状态栏样式

Posted

技术标签:

【中文标题】如何在 iOS 7 启动期间更改状态栏样式【英文标题】:How to change status bar style during launch on iOS 7 【发布时间】:2013-09-26 06:56:07 【问题描述】:

当我启动我的应用程序时,它会显示启动图像和黑色状态栏。如何更改它以使状态栏在启动期间亮起?我已在我的 AppDelegate didFinishLoading 方法中将状态栏外观设置为亮起,它适用于应用程序的其余部分。

【问题讨论】:

【参考方案1】:

在您的 Info.plist 文件中添加以下键值对:

UIStatusBarStyle: UIStatusBarStyleLightContent

默认(黑色)值为UIStatusBarStyleDefault

您还可以将~iphone~ipad 附加到密钥。

【讨论】:

对于那些在移动设备上查看此内容并像我一样感到困惑的人:这是一个波浪号,而不是一个连字符。【参考方案2】:

有2 steps:

    这通常是开发人员知道如何做的 - 在目标设置 > 常规 > 状态栏样式 > 更改为浅色。这将使 Info.plist 包含 UIStatusBarStyleLightContent

    这一步经常被遗漏 – 在 Info.plist 中,添加 View controller-based status bar appearance 并设置为 NO

【讨论】:

我只有以下选项:“在应用程序启动期间隐藏”和“需要全屏”。没有条形样式。 @NicolasMiari 如果您没有看到它,那么您必须添加它。点击行中的 +。 我就是为 .plist 做的。我说的是目标信息窗格。 @NicolasMiari 这两个步骤都是关于 Info.plist。 我没有在 XCode 8 中看到更改灯光设置 - 截图:i.imgur.com/5aF5OG2.png - 请您指教【参考方案3】:

只需在您想要的任何视图或文件中定义此方法:

- (UIStatusBarStyle)preferredStatusBarStyle

    return UIStatusBarStyleLightContent;


// swift 
override func preferredStatusBarStyle() -> UIStatusBarStyle 
    return .LightContent

【讨论】:

这对我有帮助!谢谢! 我这样做了,但没有任何改变。有什么建议吗? @msurguy “发布期间” - 这是针对每次观看的。 这适用于在不同视图上更改状态栏样式,而不是在启动期间(这是 OP 要求的) 这是迄今为止更改状态栏外观最糟糕的方法,需要您在每个单独的 viewController 上复制此代码,或者创建一个子类,这两者都远不如 .plist 方法跨度> 【参考方案4】:

就我而言,UIStatusBarStyleLightContent 不是一个可能的选择。我在我的 .plist 中将 Transparent black style (alpha of 0.5) 设置为键 Status bar style 的值,结果是一个白色的状态栏。

【讨论】:

对我来说也一样,奇怪。我发现除了默认值之外的任何值都会导致类似于UIStatusBarStyleLightContent 的浅色状态栏内容。 Xcode 5 中没有这个选项,你必须手动输入。 如果您单击该字段而不是显示选项,您可以输入任何您喜欢的值。我刚刚粘贴了它,它工作正常。【参考方案5】:

适用于 ios7 和 iOS8

您需要在 Info.plist 文件属性中设置密钥 Status bar style:

    白色状态栏设置Opaque black styleTransparent black style (alpha of 0.5) 设置Gray style (default) 设置黑色状态栏颜色。

看起来您为状态栏设置了背景样式,XCode 了解需要选择哪种颜色的状态栏。深色背景 - 白色状态栏,浅色背景 - 黑色状态栏

【讨论】:

【参考方案6】:
**

 - You must take care of these three things:

**

**- In info.plist file**
Set UIViewControllerBasedStatusBarAppearance to YES

**- In your view controller** in which you want change color of status bar
add this [self setNeedsStatusBarAppearanceUpdate] in viewDidLoad

**- Lastly, add this method**
- (UIStatusBarStyle)preferredStatusBarStyle

      return UIStatusBarStyleLightContent;


Note: If you want to set color of statusBar for all the View Controllers then steps are
**- In info.plist file**
Set UIViewControllerBasedStatusBarAppearance to YES

**- Then add this in appDelegate**
[UIApplication sharedApplication].statusBarStyle = UIStatusBarStyleLightContent; // **It is deprecated in iOS 9**

【讨论】:

以上是关于如何在 iOS 7 启动期间更改状态栏样式的主要内容,如果未能解决你的问题,请参考以下文章

在iOS 7中隐藏导航栏时,如何更改状态栏的颜色?

状态恢复的状态栏样式

如何在 iOS 7 上更改状态栏背景颜色和文本颜色?

(iOS 9 及以下)如何在用户交互期间指定标签栏项目文本颜色(选中状态和正常状态)

如何在iOS 7上更改状态栏背景颜色和文本颜色? Warif Akhand Rishi

iOS 7隐藏导航栏时如何更改状态栏的颜色?