隐藏状态栏在ios 9
Hide the status bar in ios 9
ios9中如何隐藏状态栏?
现已弃用:
[UIApplication sharedApplication] setStatusBarHidden:YES];
我知道 setStatusBarHidden:
的文档中没有提到具体用途。但是 UIApplication
的 header 可以。
// Setting statusBarHidden does nothing if your application is using the default UIViewController-based status bar system.
@property(readwrite, nonatomic,getter=isStatusBarHidden) BOOL statusBarHidden NS_DEPRECATED_IOS(2_0, 9_0, "Use -[UIViewController prefersStatusBarHidden]");
- (void)setStatusBarHidden:(BOOL)hidden withAnimation:(UIStatusBarAnimation)animation NS_DEPRECATED_IOS(3_2, 9_0, "Use -[UIViewController prefersStatusBarHidden]");
此处声明您应该在 UIViewController
上使用 prefersStatusBarHidden
并使用基于视图控制器的状态栏样式。
您现在需要做的就是配置视图控制器是否需要显示或隐藏状态栏。像这样:
- (BOOL)prefersStatusBarHidden {
return YES;
}
Swift-3
override var prefersStatusBarHidden: Bool {
return true
}
我从
那里得到了信息
将func
改为var
删除()
将->
更改为:
这是有效的,因为计算变量有一个 getter 函数,所以你之前实现的函数简单地变成了 getter 函数
2016 年起:简单的东西
在你的 info.plist 上为 statusBar Hidden
添加以下两个 属性
查看基于控制器的状态栏外观(布尔值:否)
状态栏最初是隐藏的(布尔值:是)
按来源
<key>UIStatusBarHidden</key>
<true/>
<key>UIViewControllerBasedStatusBarAppearance</key>
<false/>
或
旧答案! ...
在didFinishLaunchingWithOptions
中添加application.statusBarHidden
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
// Override point for customization after application launch.
application.statusBarHidden = YES;
return YES;
}
并添加
在info.plist
中添加这个View controller-based status bar appearance
设置NO
View controller-based status bar appearance = NO
viewcontroller 基于隐藏集
在您的视图控制器中添加方法。
Objective-C
- (BOOL)prefersStatusBarHidden {
return YES;
}
Swift 最多 2
override func prefersStatusBarHidden() -> Bool {
return true
}
(良好)2016.5.17 在 iOS 9.0 中运行良好。
更新答案
- 转到 Info.plist 文件
- 将鼠标悬停在其中一行上,将显示 (+) 和 (-) 按钮。
- 单击加号按钮添加新密钥
- 输入 以大写字母 V 开头,第一个选项将自动成为 基于视图控制器的状态栏外观 。将其添加为 KEY。
- 将值设置为 "NO"
- 去找你 AppDelegate.m for Objective-C (for swift 语言: AppDelegate.swift)
- 在方法里面添加代码
对于Objective-C:
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
[application setStatusBarHidden:YES];
return YES;
}
对于Swift:
func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject:AnyObject]?) -> Bool {
application.statusBarHidden = true
return true
}
在info.plist中添加下面两个属性.
View controller-based status bar appearance (NO)
Status bar is initially hidden (YES)
以下是您如何轻松 return 控制 iOS 9+ 和 Swift 的状态栏可见性3+:
- 将具有
YES
值的 View controller-based status bar appearance
键添加到 Info.plist
。
将此变量添加到视图控制器:
private var isStatusBarHidden = false {
didSet {
setNeedsStatusBarAppearanceUpdate()
}
}
覆盖 prefersStatusBarHidden
属性:
override var prefersStatusBarHidden: Bool {
return isStatusBarHidden
}
就是这样。现在您可以随时调用 isStatusBarHidden = true
和 isStatusBarHidden = false
。
如果出于某种原因您需要 View controller-based status bar appearance
等于 YES
(例如保持状态栏为白色)
在 AppDelegate 的 didFinishLaunchingWithOptions
方法或您设置导航控制器的任何地方:
yourNavigationController.navigationBar.barStyle = .black
然后使用 的绝妙答案并在您要隐藏状态栏的任何位置添加此代码:
override var preferredStatusBarStyle: UIStatusBarStyle {
return .lightContent
}
我不确定这是否是实现此结果的正确方法,但它对我有用,我希望它也能帮助其他人:)
在大多数 iOS 中它都可以工作。我用 iOS 10.
测试过
- 打开info.plist
- "View controller-based status bar appearance" 设为否
- "Status bar is initially hidden" 设置为是
- 完成
一个简单的方法是根据您的需要将应用程序的 windowLevel
设置为正常或状态栏,因此开始
Objective-C
隐藏状态栏
UIApplication.sharedApplication.keyWindow.windowLevel = UIWindowLevelStatusBar;
显示状态栏
UIApplication.sharedApplication.keyWindow.windowLevel = UIWindowLevelNormal;
同时添加布尔值NO.Key
(View controller-based status bar appearance)
ios9中如何隐藏状态栏?
现已弃用:
[UIApplication sharedApplication] setStatusBarHidden:YES];
我知道 setStatusBarHidden:
的文档中没有提到具体用途。但是 UIApplication
的 header 可以。
// Setting statusBarHidden does nothing if your application is using the default UIViewController-based status bar system.
@property(readwrite, nonatomic,getter=isStatusBarHidden) BOOL statusBarHidden NS_DEPRECATED_IOS(2_0, 9_0, "Use -[UIViewController prefersStatusBarHidden]");
- (void)setStatusBarHidden:(BOOL)hidden withAnimation:(UIStatusBarAnimation)animation NS_DEPRECATED_IOS(3_2, 9_0, "Use -[UIViewController prefersStatusBarHidden]");
此处声明您应该在 UIViewController
上使用 prefersStatusBarHidden
并使用基于视图控制器的状态栏样式。
您现在需要做的就是配置视图控制器是否需要显示或隐藏状态栏。像这样:
- (BOOL)prefersStatusBarHidden {
return YES;
}
Swift-3
override var prefersStatusBarHidden: Bool {
return true
}
我从
将
func
改为var
删除
()
将
->
更改为:
这是有效的,因为计算变量有一个 getter 函数,所以你之前实现的函数简单地变成了 getter 函数
2016 年起:简单的东西
在你的 info.plist 上为 statusBar Hidden
添加以下两个 属性查看基于控制器的状态栏外观(布尔值:否)
状态栏最初是隐藏的(布尔值:是)
按来源
<key>UIStatusBarHidden</key>
<true/>
<key>UIViewControllerBasedStatusBarAppearance</key>
<false/>
或
旧答案! ...
在
中添加didFinishLaunchingWithOptions
application.statusBarHidden
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { // Override point for customization after application launch. application.statusBarHidden = YES; return YES; }
并添加
在
info.plist
中添加这个View controller-based status bar appearance
设置NO
View controller-based status bar appearance = NO
viewcontroller 基于隐藏集
在您的视图控制器中添加方法。
Objective-C
- (BOOL)prefersStatusBarHidden {
return YES;
}
Swift 最多 2
override func prefersStatusBarHidden() -> Bool {
return true
}
(良好)2016.5.17 在 iOS 9.0 中运行良好。
更新答案
- 转到 Info.plist 文件
- 将鼠标悬停在其中一行上,将显示 (+) 和 (-) 按钮。
- 单击加号按钮添加新密钥
- 输入 以大写字母 V 开头,第一个选项将自动成为 基于视图控制器的状态栏外观 。将其添加为 KEY。
- 将值设置为 "NO"
- 去找你 AppDelegate.m for Objective-C (for swift 语言: AppDelegate.swift)
- 在方法里面添加代码
对于Objective-C:
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
[application setStatusBarHidden:YES];
return YES;
}
对于Swift:
func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject:AnyObject]?) -> Bool {
application.statusBarHidden = true
return true
}
在info.plist中添加下面两个属性.
View controller-based status bar appearance (NO)
Status bar is initially hidden (YES)
以下是您如何轻松 return 控制 iOS 9+ 和 Swift 的状态栏可见性3+:
- 将具有
YES
值的View controller-based status bar appearance
键添加到Info.plist
。 将此变量添加到视图控制器:
private var isStatusBarHidden = false { didSet { setNeedsStatusBarAppearanceUpdate() } }
覆盖
prefersStatusBarHidden
属性:override var prefersStatusBarHidden: Bool { return isStatusBarHidden }
就是这样。现在您可以随时调用 isStatusBarHidden = true
和 isStatusBarHidden = false
。
如果出于某种原因您需要 View controller-based status bar appearance
等于 YES
(例如保持状态栏为白色)
在 AppDelegate 的 didFinishLaunchingWithOptions
方法或您设置导航控制器的任何地方:
yourNavigationController.navigationBar.barStyle = .black
然后使用
override var preferredStatusBarStyle: UIStatusBarStyle {
return .lightContent
}
我不确定这是否是实现此结果的正确方法,但它对我有用,我希望它也能帮助其他人:)
在大多数 iOS 中它都可以工作。我用 iOS 10.
测试过- 打开info.plist
- "View controller-based status bar appearance" 设为否
- "Status bar is initially hidden" 设置为是
- 完成
一个简单的方法是根据您的需要将应用程序的 windowLevel
设置为正常或状态栏,因此开始
Objective-C
隐藏状态栏
UIApplication.sharedApplication.keyWindow.windowLevel = UIWindowLevelStatusBar;
显示状态栏
UIApplication.sharedApplication.keyWindow.windowLevel = UIWindowLevelNormal;
同时添加布尔值NO.Key
(View controller-based status bar appearance)