如何在 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 style
或Transparent 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 9 及以下)如何在用户交互期间指定标签栏项目文本颜色(选中状态和正常状态)