IOS状态栏设置(UIStatusBar)

状态栏

状态栏分为两个部分:
1.显示部分:时间、电池、运营商等的显示部分;
2.背景部分:背景设置显示的需求颜色部分;

显示部分颜色设置
两种显示:

默认的黑色(UIStatusBarStyleDefault)
白色(UIStatusBarStyleLightContent)

  • 第一种方法:

      // info.plist添加字段 :Status bar style 
      // Transparent black style (alpha of 0.5)&Opaque black style:白色
      // Gray style (default):黑色
    
      // 同时添加View controller-based status bar appearance 设置为NO;
      // 设置后全局生效
    
  • 第二种方法:

      // 重写UIViewController的preferredStatusBarStyle方法
      - (UIStatusBarStyle)preferredStatusBarStyle {
      	//黑色:UIStatusBarStyleDefault //白色:UIStatusBarStyleLightContent
      	// 当前控制器生效
      	return UIStatusBarStyleDefault;
      }
      
      /// 返回是否Hidden
      - (BOOL)prefersStatusBarHidden {
      	//返回YES隐藏,NO显示
      	return NO;
      }
      
      //更新statusBarStyle  在同一界面需要改变状态栏颜色 需调用从方法,调用此方法后,系统会通知当前控制器调用preferredStatusBarStyle方法.一次我们可以来改变状态栏颜色
      - (void)setNeedsStatusBarAppearanceUpdate;
    
      // 如果此控制器被放在了UINavigationController中,重写UIViewController这些方法将不再会调用.我们可以定义UINavigationController的子类,重写childViewControllerForStatusBarStyle方法,UIViewController中重写的方法会生效.
      -(nullable UIViewController *)childViewControllerForStatusBarStyle {
      	//返回栈顶控制器 默认返回为nil
      	return self.topViewController;
      }
    
  • 第三种方法 UIApplication

      // 第二种方法是在View controller-based status bar appearance 为YES时生效.系统默认为YES.
      // 此方法需要设置View controller-based status bar appearance 为NO:
      [UIApplication sharedApplication].statusBarStyle = UIStatusBarStyleLightContent;
      // 并且此方法设置全局生效.iOS9以后全部都废除了,不推荐使用.
    
背景部分颜色设置(默认导航控制器存在)
  • 1 使用navigationBar的setBarTintColor接口,用此接口可改变statusBar的背景色.但是,一旦你设置了navigationBar的- (void)setBackgroundImage:(UIImage *)backgroundImage forBarMetrics:(UIBarMetrics)barMetrics接口,那么上面的setBarTintColor接口就不能改变statusBar的背景色,statusBar的背景色就会变成纯黑色。
  • 2 通过设置一层View覆盖在状态栏上,显示颜色.
    UIView *statusView = [[UIView alloc]initWithFrame:CGRectMake(0, -20, [UIScreen mainScreen].bounds.size.width, 20)];
    statusView.backgroundColor = [UIColor blackColor];
    [self.navigationController.navigationBar addSubview:statusView];
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值