< 返回技术文档列表

ios状态栏UIStatusBar设置

发布时间:2022-11-15 22:26:54⊙投诉举报

状态栏就是显示经营商、时间、电量、WiFi的那块

隐藏和显示状态栏

一、隐藏状态栏

iOS8以上的适配:

当然假如想一直隐藏手机状态栏, 就不用去执行步骤2, 假如想等项目启动完成后再状态栏显示出来就去执行步骤2.
1、 开启项目- General - Status Bar Style -勾选Hide during application launch
2、 在appDelegate.m文件内

- (BOOL)application:(UIApplication *)applicationdidFinishLaunchingWithOptions:(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、 设置启动状态栏颜色改变(白色),而视图中状态栏不变化(默认黑色)
方法1方法2
  • 2、 设置 启动和页面视图的黄太懒都为白色/黑色
    • a.在Info.plist里面增加一行View controller-based status bar appearance = NO 就可,如下图:
在info.plist设置在控制器.m设置

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:


/template/Home/Zkeys/PC/Static