无法为视图设置 iOS 状态栏颜色
Cannot set iOS Status Bar Colour for View
我正在为 iOS8 开发应用程序,使用 Swift 1.2.
但是,我对状态栏(带有时间、电池指示器等的颜色)的颜色有疑问。
在我的 Info.plist
文件中,我将 UIViewControllerBasedStatusBarAppearance
设置为 YES
并将 Status bar style
设置为 UIStatusBarStyleLightContent
然后在我所有的视图控制器中在情节提要中,我将状态栏设置为 "Light Content"。
这适用于我所有的 NavigationViewControllers
和嵌入在 NavigationViewControllers
中的视图,但是我有一个正常的 TableViewController
没有嵌入到 NavigationController
中,当我以模态方式推送此视图,状态栏变为黑色!???
即使我在 Storyboard 编辑器中查看视图,它也显示为白色状态栏(请注意下方屏幕截图右侧的微弱白色电池指示器):
但是当我在 iPhone 上构建和 运行 时,状态栏显示为黑色...
这是为什么?我怎样才能解决这个问题?我不知道哪里不对。
请确保将值为 NO
的 View controller-based status bar appearance
(UIViewControllerBasedStatusBarAppearance) 添加到您的 Info.plist
这些是 UIStatusBar
风格的设置:
转到 AppDelegate.swift
在 didFinishLaunchingWithOptions
方法中添加下面的代码行:
UIApplication.sharedApplication().statusBarStyle = UIStatusBarStyle.LightContent
将以下键添加到 .plist
文件中。
- 在情节提要中 select 您的控制器
UINavigationController
或 UIViewController
。并设置状态栏样式为Light Content
更新:
我发现这个问题的解决方案非常简单,来自另一篇 Whosebug 文章 (Swift UIApplication.setStatusBarStyle Doesn't work)。
对于任何其他想要以编程方式设置状态栏颜色的人,我只是将以下代码插入到我的 ViewController 中以获取相关视图:
- Swift 4.0+
override var preferredStatusBarStyle: UIStatusBarStyle {
return .lightContent
}
- 较早 Swift 秒 (4.0-)
override func preferredStatusBarStyle() -> UIStatusBarStyle {
return .LightContent
}
在您的 Appdelegate.swift
文件中添加此行:
UIApplication.sharedApplication().statusBarStyle = .LightContent
为Swift3
在您的 AppDelegate.swift
文件中的函数 didFinishLaunchingWithOptions
UIApplication.shared.statusBarStyle = UIStatusBarStyle.lightContent
我正在为 iOS8 开发应用程序,使用 Swift 1.2.
但是,我对状态栏(带有时间、电池指示器等的颜色)的颜色有疑问。
在我的 Info.plist
文件中,我将 UIViewControllerBasedStatusBarAppearance
设置为 YES
并将 Status bar style
设置为 UIStatusBarStyleLightContent
然后在我所有的视图控制器中在情节提要中,我将状态栏设置为 "Light Content"。
这适用于我所有的 NavigationViewControllers
和嵌入在 NavigationViewControllers
中的视图,但是我有一个正常的 TableViewController
没有嵌入到 NavigationController
中,当我以模态方式推送此视图,状态栏变为黑色!???
即使我在 Storyboard 编辑器中查看视图,它也显示为白色状态栏(请注意下方屏幕截图右侧的微弱白色电池指示器):
但是当我在 iPhone 上构建和 运行 时,状态栏显示为黑色...
这是为什么?我怎样才能解决这个问题?我不知道哪里不对。
请确保将值为 NO
的 View controller-based status bar appearance
(UIViewControllerBasedStatusBarAppearance) 添加到您的 Info.plist
这些是 UIStatusBar
风格的设置:
转到
AppDelegate.swift
在didFinishLaunchingWithOptions
方法中添加下面的代码行:UIApplication.sharedApplication().statusBarStyle = UIStatusBarStyle.LightContent
将以下键添加到
.plist
文件中。
- 在情节提要中 select 您的控制器
UINavigationController
或UIViewController
。并设置状态栏样式为Light Content
更新:
我发现这个问题的解决方案非常简单,来自另一篇 Whosebug 文章 (Swift UIApplication.setStatusBarStyle Doesn't work)。
对于任何其他想要以编程方式设置状态栏颜色的人,我只是将以下代码插入到我的 ViewController 中以获取相关视图:
- Swift 4.0+
override var preferredStatusBarStyle: UIStatusBarStyle {
return .lightContent
}
- 较早 Swift 秒 (4.0-)
override func preferredStatusBarStyle() -> UIStatusBarStyle {
return .LightContent
}
在您的 Appdelegate.swift
文件中添加此行:
UIApplication.sharedApplication().statusBarStyle = .LightContent
为Swift3
在您的 AppDelegate.swift
文件中的函数 didFinishLaunchingWithOptions
UIApplication.shared.statusBarStyle = UIStatusBarStyle.lightContent