ios状态栏UIStatusBar设置
2017-11-24 本文已影响28人
HeavenWong
状态栏就是显示运营商、时间、电量、WiFi的那块
隐藏和显示状态栏
一、隐藏状态栏
iOS8以上的适配:
当然如果想一直隐藏手机状态栏, 就不用去执行步骤2, 如果想等项目启动完成后再状态栏显示出来就去执行步骤2.
1、 开启项目- General - Status Bar Style -勾选Hide during application launch
2、 在appDelegate.m文件内
- (BOOL)application:(UIApplication *)application
didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
//启动完成后再显示手机状态栏
application.statusBarHidden = NO;
return YES;
}
iOS7以下的适配:
第一步:在info.plist中添加一个字段:view controller -base status bar 设置为NO
第二步:在一个所有界面都继承的父类里添加:
if (IOS7_OR_LATER) { // 判断是否是IOS7
[[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleLightContent animated:NO];
}
二、显示状态栏
application.statusBarHidden = NO;
状态栏颜色
一、背景色
- 背景色就是指运营商、电量后面的背景色,可以设置黑色、白色、透明色,具体设置如下:
二、前景色
- 就是运营商、电量、等显示的颜色,同样可以设置黑色、白色、透明色
具体实现: - 1、 设置启动状态栏颜色改变(白色),而视图中状态栏不变化(默认黑色)
- 2、 设置 启动和页面视图的黄太懒都为白色/黑色
- a.在Info.plist里面添加一行
View controller-based status bar appearance = NO
即可,如下图:
- a.在Info.plist里面添加一行
navigationBar的setBarTintColor接口,用此接口可改变statusBar的背景色
注意:一旦你设置了navigationBar的- (void)setBackgroundImage:(UIImage *)backgroundImage forBarMetrics:(UIBarMetrics)barMetrics接口,那么上面的setBarTintColor接口就不能改变statusBar的背景色,statusBar的背景色就会变成纯黑色。
另辟蹊径
创建一个UIView,
设置该UIView的frame.size 和statusBar大小一样,
设置该UIView的frame.origin 为{0,-20},
设置该UIView的背景色为你希望的statusBar的颜色,
在navigationBar上addSubView该UIView即可。
refer: