博客> iOS 关于横屏后状态栏不显示的解决方案
iOS 关于横屏后状态栏不显示的解决方案
2019-06-25 07:18 评论:0 阅读:850 xiaowoniupao
ios 状态栏

当手机屏幕旋转为横屏时,会发现状态栏消失了,这个该怎么办呢?让我来提供一下解决方案:

1、如果是设置整个app的状态栏显示效果,方法如下:

首先要在info.plist文件中,添加View controller-based status bar appearance,属性为bool,设为NO;

 屏幕快照 2017-05-31 上午11.31.45.png

然后在application:didFinishLaunchingWithOptions:中添加以下代码:

 屏幕快照 2017-05-31 上午11.35.09.png

//没有动画

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

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

//状态栏样式(UIStatusBarStyleLightContent:高亮白色 UIStatusBarStyleDefault:黑色)

[[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleLightContent];

2、如果是设置某个ViewController的状态栏显示效果,方法如下:

首先要在info.plist文件中,添加View controller-based status bar appearance,属性为bool,设为NO;

然后在需要显示的ViewController中设置[[UIApplication sharedApplication] setStatusBarHidden:NO withAnimation:UIStatusBarAnimationNone];

最后在需要隐藏的ViewController中设置[[UIApplication sharedApplication] setStatusBarHidden:YES withAnimation:UIStatusBarAnimationNone];

上面的隐藏/显示状态栏的方法,在iOS9之后被弃用了,采用如下的方法进行设置:

//设置状态栏样式 -(UIStatusBarStyle)preferredStatusBarStyle{ return UIStatusBarStyleLightContent; }

//设置是否隐藏状态栏,YES为隐藏,NO为不隐藏 -(BOOL)prefersStatusBarHidden{ [super prefersStatusBarHidden]; return NO; }

//设置状态栏隐藏动画 -(UIStatusBarAnimation)preferredStatusBarUpdateAnimation{ return UIStatusBarAnimationNone; }

以上三个方法,只需要在需要设置的viewController重写即可! 需要注意的是,使用这个"新"的方法进行设置的时候,需要将View controller-based status bar appearance设置为YES,才会有效果。

参考文章:

http://blog.csdn.net/lqq200912408/article/details/51079150

http://www.jianshu.com/p/c353cec23ee7

收藏
0
sina weixin mail 回到顶部