我知道已经有一些 stackoverflow questions 说明如何更改所有视图控制器的状态栏。我目前正在以这种方式更改状态栏的颜色:
if(IS_IOS7)
[[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleLightContent];
在 application:DidFinishLaunching
此外,我已将 plist 中 UIViewControllerBasedStatusBarAppearance
的值更改为 NO
。但是,在启动画面中,它仍然以黑色显示状态栏文本。
是否可以更改初始屏幕中状态栏文本颜色的颜色?
在项目 plist 文件中添加“状态栏样式”属性(键为 UIStatusBarStyle
)。然后忽略该属性下拉列表中列出的所有可能值,并改为键入 UIStatusBarStyleLightContent
。
而且您不必在 plist 中将 UIViewControllerBasedStatusBarAppearance
设置为 NO
,您可以将所需的 preferredStatusBarStyle
设置为视图控制器。
您可以在不编写任何代码的情况下执行此操作执行以下操作以使整个应用程序的状态栏文本颜色为白色
在您的项目 plist 文件中:
状态栏样式:UIStatusBarStyleLightContent
查看基于控制器的状态栏外观:否
状态栏最初是隐藏的:否
YES
”似乎仍然可以解决问题(iOS 9)
您可以执行以下操作以在整个应用程序中获取浅色状态栏。
在项目导航器中选择项目的名称。从项目编辑器左列的列表中选择目标的名称。单击项目编辑器顶部的常规。设置状态栏样式 -> 灯光
在您的 plist 文件中添加以下值:
状态栏样式 - UIStatusBarStyleLightContent 查看基于控制器的状态栏外观 - 否
这将帮助您在整个应用程序(包括 SPLASH SCREEN)中获得白色状态栏。
在 plist 中将 UIViewControllerBasedStatusBarAppearance
设置为 No
然后在完成启动选项中添加以下代码
if ([[[UIDevice currentDevice] systemVersion] floatValue] >= 7) {
[application setStatusBarStyle:UIStatusBarStyleLightContent];
self.window.clipsToBounds =YES;
self.window.frame = CGRectMake(0,20,self.window.frame.size.width,self.window.frame.size.height-20);
}
请按照对我有用的代码
if (UIDevice.currentDevice.systemVersion.floatValue >= 7) {
以下是关于状态栏更改的Apple Guidelines/Instruction。
这是 - 如何更改状态栏样式:
如果要设置状态栏样式、应用程序级别,则在“.plist”文件中将 UIViewControllerBasedStatusBarAppearance
设置为 NO
。
如果您想在视图控制器级别设置状态栏样式,请按照以下步骤操作:
如果您只需要在 UIViewController 级别设置状态栏样式,请在 .plist 文件中将 UIViewControllerBasedStatusBarAppearance 设置为 YES。在 viewDidLoad 添加函数 - setNeedsStatusBarAppearanceUpdate 覆盖视图控制器中的 preferredStatusBarStyle。
-
override func viewDidLoad() {
super.viewDidLoad()
self.setNeedsStatusBarAppearanceUpdate()
}
override var preferredStatusBarStyle: UIStatusBarStyle {
return .lightContent
}
https://i.stack.imgur.com/8sH5i.png
您可以在应用程序启动期间或视图控制器的 viewDidLoad 期间设置状态栏的背景颜色。
extension UIApplication {
var statusBarView: UIView? {
return value(forKey: "statusBar") as? UIView
}
}
// Set upon application launch, if you've application based status bar
class AppDelegate: UIResponder, UIApplicationDelegate {
var window: UIWindow?
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {
UIApplication.shared.statusBarView?.backgroundColor = UIColor.red
return true
}
}
or
// Set it from your view controller if you've view controller based statusbar
class ViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
UIApplication.shared.statusBarView?.backgroundColor = UIColor.red
}
}
这是结果:
https://i.stack.imgur.com/LKppl.png
您可以执行以下操作以在整个应用程序中获取浅色状态栏。
在项目导航器中选择项目的名称。从项目编辑器左列的列表中选择目标的名称。单击项目编辑器顶部的常规。设置状态栏样式 -> 灯光
不定期副业成功案例分享