iOS6、7中状态栏的隐藏(图文版)

   1、在IOS的开发中经常有这样的需求,就是隐藏顶部的状态栏,以前没有具体操作到这块,以为只是简单的调用下面的代码就可以实现

[[UIApplication sharedApplication] setStatusBarHidden:YES withAnimation:UIStatusBarAnimationFade];
实际上这行代码的起作用是有前提的。(只是在iOS6下才能实现,经本人测试)

  2、在继续此次博客之旅前,我为大家普及下关于项目info.plist文件中的俩个配置,见下图

Status bar is initially hidden :该属性设置为 YES时,根据字面意思也可以明白,即程序启动后将会隐藏掉状态栏。设置为 NO,程序启动后将会显示状态栏。这个属性的作用一般是用在 加载启动页面的时候,如果启动图片尺寸是 640*1136 或 640*960时,就需要将其设置为YES。然后进入程序之后调用如下方法将隐藏的状态栏显示出来。

[[UIApplication sharedApplication]setStatusBarHidden:NO];
view controller-base status bar :该属性设置为YES,代表viewController对状态栏控制的优先级高于 uiapplication,设置为NO,代表 UIApplication对状态栏控制的优先级高于view controller。

  3、下面介绍如何在IOS6、iOS7下隐藏状态栏

        3.1、iOS6下隐藏状态栏的方法很简单,在想隐藏的地方直接调用

[[UIApplication sharedApplication] setStatusBarHidden:YES withAnimation:UIStatusBarAnimationFade];
       3.2、iOS7下隐藏状态栏。由于在iOS7中状态栏不仅仅是状态栏自己,状态栏和导航栏合体了,所以单纯的调用

[[UIApplication sharedApplication] setStatusBarHidden:YES withAnimation:UIStatusBarAnimationFade];
这行代码不会起到隐藏状态栏的效果。需要配合以下代码方能实现。

      首先、在info.plist中配置view controller-base status属性为 YES,将view controller对状态栏的控制权优于uiapplication.

      其次、在viewcontroller中实现下面的方法

- (BOOL)prefersStatusBarHidden
{
    return YES;
}
     最后、在viewdidload 方法中调用
- (void)viewDidLoad
{
    [super viewDidLoad];
    if ([self respondsToSelector:@selector(setNeedsStatusBarAppearanceUpdate)]) {
        [self prefersStatusBarHidden];
        [self setNeedsStatusBarAppearanceUpdate];
    }
}
    好了,运行一下就可以发现状态栏被隐藏掉了俄。



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值