Sus*_*tha 217 statusbar show-hide ios7
在我的iOS视频应用中,状态栏隐藏在某些视图控制器中.我使用以下代码完成了此操作.
[[UIApplication sharedApplication] setStatusBarHidden:YES];
Run Code Online (Sandbox Code Playgroud)
它适用于iOS 5和iOS 6,但不适用于iOS 7.
我在特定的视图控制器中试过这个,
例如:
-(BOOL)prefersStatusBarHidden { return YES; }
Run Code Online (Sandbox Code Playgroud)
它运行良好,但我不能再在父视图控制器中显示状态栏.
Raj*_*071 276
您应该将此值添加到plist:" 查看基于控制器的状态栏外观 "并将其设置为" NO ".
She*_*pta 189
将以下内容添加到Info.plist中:
<key>UIStatusBarHidden</key>
<true/>
<key>UIViewControllerBasedStatusBarAppearance</key>
<false/>
Run Code Online (Sandbox Code Playgroud)
小智 112
在viewdidload中添加以下行
[[UIApplication sharedApplication] setStatusBarHidden:YES
withAnimation:UIStatusBarAnimationFade];
Run Code Online (Sandbox Code Playgroud)
并添加新方法
- (BOOL)prefersStatusBarHidden {
return YES;
}
Run Code Online (Sandbox Code Playgroud)
还要更改info.plist文件查看基于控制器的状态栏外观"=否
它适合我
Gur*_*gam 33
在Plist中添加以下属性.
Status bar is initially hidden = YES
View controller-based status bar appearance = NO
Run Code Online (Sandbox Code Playgroud)
现在状态栏将隐藏.
Raj*_*han 27
- (void)viewWillAppear:(BOOL)animated
{
[super viewWillAppear:animated]
[[UIApplication sharedApplication] setStatusBarHidden:YES withAnimation:UIStatusBarAnimationNone];
}
- (void)viewWillDisappear:(BOOL)animated
{
[super viewWillDisappear:animated]
[[UIApplication sharedApplication] setStatusBarHidden:NO withAnimation:UIStatusBarAnimationNone];
}
Run Code Online (Sandbox Code Playgroud)
override func viewWillAppear(animated: Bool)
{
super.viewWillAppear(animated)
UIApplication.sharedApplication().setStatusBarHidden(true, withAnimation: UIStatusBarAnimation.None)
}
override func viewWillDisappear(animated: Bool)
{
super.viewWillDisappear(animated)
UIApplication.sharedApplication().setStatusBarHidden(false, withAnimation: UIStatusBarAnimation.None)
}
Run Code Online (Sandbox Code Playgroud)
小智 14
我做了以下操作,它似乎工作(即使在iOS 8中):
- (void)navigationController:(UINavigationController *)navigationController willShowViewController:(UIViewController *)viewController animated:(BOOL)animated
{
if ([self respondsToSelector:@selector(setNeedsStatusBarAppearanceUpdate)]) {
[[UIApplication sharedApplication] setStatusBarHidden:YES];
}
}
- (BOOL)prefersStatusBarHidden {
return YES;
}
Run Code Online (Sandbox Code Playgroud)
Chr*_*ris 12
但是当涉及到UINavigationController时它会变得更有趣:
要在iOS7中隐藏状态栏,您需要2行代码
在应用程序中:(UIApplication*)应用程序didFinishLaunchingWithOptions :( NSDictionary*)launchOptions写
[[UIApplication sharedApplication] setStatusBarHidden:YES];
Run Code Online (Sandbox Code Playgroud)在info.plist中添加这个
View-Controller Based Status Bar Appearance = NO
Run Code Online (Sandbox Code Playgroud)在iOS10中,我需要做的是覆盖prefersStatusBarHidden
我的RootViewController
(Swift)中的var :
override var prefersStatusBarHidden: Bool {
return true
}
Run Code Online (Sandbox Code Playgroud)
斯威夫特 5
使用以下步骤隐藏 iOS 状态栏:
最终设置截图:
这适用于Xcode 10.2
试试吧;
[[UIApplication sharedApplication] setStatusBarHidden:YES withAnimation:UIStatusBarAnimationNone];
Run Code Online (Sandbox Code Playgroud)
这是Swift版本(iOS9之前版本):
override func viewWillAppear(animated: Bool) {
super.viewWillAppear(animated)
UIApplication.sharedApplication().setStatusBarHidden(true, withAnimation: UIStatusBarAnimation.None)
}
override func viewWillDisappear(animated: Bool) {
super.viewWillDisappear(animated)
UIApplication.sharedApplication().setStatusBarHidden(false, withAnimation: UIStatusBarAnimation.None)
}
Run Code Online (Sandbox Code Playgroud)
这也有效(iOS7 +):
override func prefersStatusBarHidden() -> Bool {
return true
}
Run Code Online (Sandbox Code Playgroud)
你还需要打电话:
setNeedsStatusBarAppearanceUpdate()
Run Code Online (Sandbox Code Playgroud)
在说viewDidLoad()
.
请注意,如果您使用SplitView控制器或其他container
视图控制器,则还需要在发送时返回您的类childViewControllerForStatusBarHidden
.执行此操作的一种方法是使用公共弱变量statusController
,并在此重写方法中返回它.
iOS 9 以后:
由于statusBarHidden
方法已从iOS9弃用, 您需要在 plist 中添加两个值,如下所示:
<key>UIStatusBarHidden</key>
<true/>
<key>UIViewControllerBasedStatusBarAppearance</key>
<false/>
Run Code Online (Sandbox Code Playgroud)
或通过用户界面请参考下图:
由于statusBarHidden
被弃用从iOS9:
@property(readwrite, nonatomic,getter=isStatusBarHidden) BOOL statusBarHidden NS_ DEPRECATED _IOS(2_0, 9_0 , "Use -[UIViewController prefersStatusBarHidden]") __TVOS_PROHIBITED;
Swift 3+ (iOS 9, 10) 的固定解决方案
1- 在 info.plist 设置下面的属性
2-将下面的代码粘贴到根控制器,到
private var isStatusBarHidden = true {
didSet {
setNeedsStatusBarAppearanceUpdate()
}
}
override var prefersStatusBarHidden: Bool {
return isStatusBarHidden
}
Run Code Online (Sandbox Code Playgroud)
你可以打电话isStatusBarHidden = true
和isStatusBarHidden = false
你想要的hide/show
状态栏
归档时间: |
|
查看次数: |
178391 次 |
最近记录: |