启动画面上如何隐藏状态栏

24
有没有一种方法可以在应用启动图像显示时隐藏状态栏,然后再将其带回来? 我的应用程序具有黑色状态栏,而显示在启动图像上的状态栏为灰色。
是否有任何解决方案?
5个回答

50

使用以下代码隐藏状态栏:

ObjectiveC:

[[UIApplication sharedApplication] setStatusBarHidden:YES
 withAnimation:UIStatusBarAnimationSlide];

Swift:

UIApplication.sharedApplication().setStatusBarHidden(true, withAnimation: .Slide)
如果您不需要开头的状态栏。在Info.plist文件中添加此设置(UIStatusBarHidden):
如果您不需要应用程序开头的状态栏,请在Info.plist文件中添加此设置(UIStatusBarHidden):
Status bar is initially hidden

使用此代码可在应用程序中的任何位置显示该特定视图控制器的状态栏,其值为YES

ObjectiveC:

[[UIApplication sharedApplication] setStatusBarHidden:NO withAnimation:UIStatusBarAnimationSlide];

Swift:

UIApplication.sharedApplication().setStatusBarHidden(false, withAnimation: .Slide)

1
你把 UIApplication 代码粘贴到哪里是最好的位置? - syntagma
我将它放在了didlaunch中,并且所有的视图控制器都继承自一个基础控制器。我在storyboard中有一个登录和主要的故事板。我的基础控制器检测故事板类型,如果是登录类型,在view load中进行调用。将此调用放入您的appdelegate:didlaunch中,还可以放入您的基础控制器或视图控制器的viewdidload中(如果您喜欢打很多字)。 - Nick Turner
对我有用!谢谢! - Julius
状态栏最初是隐藏的 = YES 在infoplist中起了作用,谢谢! - user3344977
@HardikAmal 在 application(didFinishLaunchingWithOptions:) 中添加 application.isStatusBarHidden = false - rafalkitta
显示剩余2条评论

16

只需在plist文件中定义一个键即可解决您的问题。

这是图片描述

愉快编码:)


4
不幸的是,这使我的整个应用程序进入全屏模式。然而我只想要启动图像全屏显示。我尝试在viewDidLoad中添加"setStatusBarHidden:NO",但状态栏与视图重叠:( - Sergey Grischyov

14

您可以最初在info.plist文件中添加此键:status bar is initially hidden=YES

然后,在应用程序委托中,在application:didFinishLaunchingWithOptions:方法中添加此行:

  [[UIApplication sharedApplication] setStatusBarHidden:NO];

5
将其还原回来:
- (void)applicationDidFinishLaunching:(UIApplication *)application {
    // Override point for customization after app launch

    [[UIApplication sharedApplication] setStatusBarHidden:NO];
}

3
在info.plist中添加以下密钥:
将“状态栏最初隐藏”选择为“是”。

不,我想把它提出来,而不是永远隐藏它。我该怎么做? - Sergey Grischyov
@SergiusGee 请看我的上面的回答。 - Arash Zeinoddini

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接