[绍棠] 关于横屏后状态栏不显示的问题

19 篇文章 0 订阅
3 篇文章 0 订阅

在做一个页面强制横屏的操作后,发现状态栏不显示了,这是因为iOS系统(好像是iOS8之后)在视图横屏的时候默认把状态栏隐藏掉了,之后查了一些方法,总结如下:

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

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

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

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

[objc]  view plain  copy
  在CODE上查看代码片 派生到我的代码片
  1. //设置样式  
  2. - (UIStatusBarStyle)preferredStatusBarStyle {  
  3.     return UIStatusBarStyleLightContent;  
  4. }  
  5.   
  6. //设置是否隐藏  
  7. - (BOOL)prefersStatusBarHidden {  
  8. //    [super prefersStatusBarHidden];  
  9.     return NO;  
  10. }  
  11.   
  12. //设置隐藏动画  
  13. - (UIStatusBarAnimation)preferredStatusBarUpdateAnimation {  
  14.     return UIStatusBarAnimationNone;  
  15. }  

以上三个方法,只需要在需要设置的viewController重写即可!

但是需要注意的是,使用这个"新"的方法进行设置的时候,需要将View controller-based status bar appearance设置为YES,才会有效果,

这样在进行iOS系统适配的时候,就很纠结了,不过庆幸的是,新方法在iOS7的时候就已经支持了:

[objc]  view plain  copy
  在CODE上查看代码片 派生到我的代码片
  1. - (UIStatusBarStyle)preferredStatusBarStyle NS_AVAILABLE_IOS(7_0) __TVOS_PROHIBITED; // Defaults to UIStatusBarStyleDefault  
  2. - (BOOL)prefersStatusBarHidden NS_AVAILABLE_IOS(7_0) __TVOS_PROHIBITED; // Defaults to NO  
  3. // Override to return the type of animation that should be used for status bar changes for this view controller. This currently only affects changes to prefersStatusBarHidden.  
  4. - (UIStatusBarAnimation)preferredStatusBarUpdateAnimation NS_AVAILABLE_IOS(7_0) __TVOS_PROHIBITED;  

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值