一、状态栏的显示与隐藏(iOS9之后,控制器之间的状态栏不会相互影响):
1、在info.plist里面添加
<key>UIViewControllerBasedStatusBarAppearance</key>
<true/>
2、在控制器里面定义一个属性
@property (nonatomic, assign) BOOL statusBarHidden;
3、重写状态栏的一个方法
- (BOOL)prefersStatusBarHidden {
return self.statusBarHidden;
}
4、刷新状态栏的隐藏与显示
self.statusBarHidden = YES/NO;
[self performSelector:@selector(setNeedsStatusBarAppearanceUpdate)];
二、状态栏样式(iOS9之后,控制器之间的状态栏不会相互影响):
1、在info.plist里面添加
<key>UIViewControllerBasedStatusBarAppearance</key>
<true/>
2、在控制器里面定义一个属性
@property (nonatomic, assign) NSInteger statusBarStyle;
3、重写状态栏样式的一个方法
- (UIStatusBarStyle)preferredStatusBarStyle {
return self.statusBarStyle;
}
4、刷新状态栏的隐藏与显示
self.statusBarStyle = UIStatusBarStyleDefault/UIStatusBarStyleLightContent;
[self performSelector:@selector(setNeedsStatusBarAppearanceUpdate)];
三、全局设置状态栏文本颜色为白色(iOS9之后):
1、在info.plist添加
<key>UIViewControllerBasedStatusBarAppearance</key>
<false/>
2、修改状态栏Style为Light,如下图:
3、如果需要修改状态栏的背景颜色,在AppDelegate添加如下代码并调用
- (void)setStatusBarBackgroundColor:(UIColor *)color {
UIView *statusBar = [[[UIApplication sharedApplication] valueForKey:@"statusBarWindow"] valueForKey:@"statusBar"];
if ([statusBar respondsToSelector:@selector(setBackgroundColor:)]) {
statusBar.backgroundColor = color;
}
}