iOS statusBar

1.statusBar Info.plist文件配置说明详

分别在 Info.plist中添加以下字段,分别表示

1.Status bar is initially hidden  在程序启动过程中是否隐藏状态栏 需要隐藏 YES 不隐藏 NO。

2.View controller-based status bar appearance 全局statusbar默认样式,这个可以这样理解 当设置为YES是全局样式统一,只可通过- (BOOL)prefersStatusBarHidden ,进行隐藏设置 ,默认黑色字体,可编辑性较差,所以此处一般设为NO。

3.Status bar style  字体颜色设置
typedef NS_ENUM(NSInteger, UIStatusBarStyle) {
    UIStatusBarStyleDefault                                     = 0, // Dark content, for use on light backgrounds
    UIStatusBarStyleLightContent     NS_ENUM_AVAILABLE_IOS(7_0) = 1, // Light content, for use on dark backgrounds
    
    UIStatusBarStyleBlackTranslucent NS_ENUM_DEPRECATED_IOS(2_0, 7_0, "Use UIStatusBarStyleLightContent") = 1,
    UIStatusBarStyleBlackOpaque      NS_ENUM_DEPRECATED_IOS(2_0, 7_0, "Use UIStatusBarStyleLightContent") = 2,
} __TVOS_PROHIBITED;

由此我们可以看出Status bar style 提供四个接口参数,其中UIStatusBarStyleBlackTranslucent ,UIStatusBarStyleBlackOpaque iOS7之后已经废弃,我们常用的UIStatusBarStyleDefault 黑色字体  UIStatusBarStyleLightContent 白色字体两种

如图:
iOS statusBar_第1张图片
info.png

2.自定义状态栏背景颜色

效果如下:
iOS statusBar_第2张图片
背景颜色.png

代码如下:

- (void)viewWillAppear:(BOOL)animated{
    [super viewWillAppear:YES];
    //在将要显现页面时进行,颜色设置
    [self setStatusBarBackgroundColor:[UIColor blueColor]];
}
- (void)viewWillDisappear:(BOOL)animated{
    [super viewWillDisappear:YES];
    //在页面将要离开事对设置颜色进行置空恢复原来的颜色,或者clearColor 在此之前打印其背景颜色你会发现是空的。
    [self setStatusBarBackgroundColor:NULL];
}
//设置状态栏颜色
- (void)setStatusBarBackgroundColor:(UIColor *)color {
    UIView *statusBar = [[[UIApplication sharedApplication] valueForKey:@"statusBarWindow"] valueForKey:@"statusBar"];
    if ([statusBar respondsToSelector:@selector(setBackgroundColor:)]) {
        statusBar.backgroundColor = color;
    }
}

3.隐藏设置 及动画

一切尽在无言中

- (IBAction)show:(id)sender {
    [UIView animateWithDuration:1.0 animations:^{
//        typedef NS_ENUM(NSInteger, UIStatusBarAnimation) {
//            UIStatusBarAnimationNone,无动画效果
//            UIStatusBarAnimationFade,颜色渐变效果动画
//            UIStatusBarAnimationSlide,滑动动画
//        } __TVOS_PROHIBITED;
        //直接出现
        //[[UIApplication sharedApplication] setStatusBarHidden:NO];
        //颜色渐渐变深直到出现
        //[[UIApplication sharedApplication] setStatusBarHidden:NO withAnimation:YES];
        //颜色渐渐变深直到出现
        [[UIApplication sharedApplication] setStatusBarHidden:NO withAnimation:UIStatusBarAnimationFade];
    }];
}
- (IBAction)hide:(id)sender {
    
    [UIView animateWithDuration:1.0 animations:^{
        //直接消失
        //[[UIApplication sharedApplication] setStatusBarHidden:NO];
        //颜色渐渐变浅直到消失
        [[UIApplication sharedApplication] setStatusBarHidden:YES withAnimation:UIStatusBarAnimationFade];
    }];
}
- (void)viewWillDisappear:(BOOL)animated{
    [super viewWillDisappear:YES];
    //在页面将要离开事对设置颜色进行置空恢复原来的颜色,或者clearColor 在此之前打印其背景颜色你会发现是空的。
    [self setStatusBarBackgroundColor:NULL];
   [[UIApplication sharedApplication] setStatusBarHidden:NO withAnimation:UIStatusBarAnimationNone];
}

你可能感兴趣的:(iOS statusBar)