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 白色字体两种
如图:2.自定义状态栏背景颜色
效果如下:代码如下:
- (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];
}