ios15导航栏颜色的设置(兼容)

2022-02-11 16:01:29 阅读:1 编辑
 //ios 15系统
      if (@available(iOS 15.0, *)) {
          UINavigationBarAppearance *appperance = [[UINavigationBarAppearance alloc]init];
          //添加背景色
          appperance.backgroundColor = [UIColor colorWithHexString:info[@"title"]];
          appperance.shadowImage = [[UIImage alloc]init];
          appperance.shadowColor = nil;
          if (info[@"statusBarStyle"]) {
              UIColor *frontColor = [UIColor colorWithHexString:@"#000000"];
              if ([info[@"statusBarStyle"] isEqualToString:@"LightContent"]) {
                  frontColor = [UIColor colorWithHexString:@"#ffffff"];
              }
              //设置字体颜色大小
              [appperance setTitleTextAttributes:@{NSForegroundColorAttributeName:frontColor}];
          }

          vc.navigationController.navigationBar.standardAppearance = appperance;
          vc.navigationController.navigationBar.scrollEdgeAppearance = appperance;

      }else{
          if (info[@"title"]) {
              UIColor *backColor = [UIColor colorWithHexString:info[@"title"]];

               [vc.navigationController.navigationBar setBackgroundImage:[UIImage imageWithColor:backColor size:vc.navigationController.navigationBar.bounds.size] forBarMetrics:UIBarMetricsDefault];
          }

          /* 状态栏样式 */

          if (info[@"statusBarStyle"]) {
              if ([info[@"statusBarStyle"] isEqualToString:@"Default"]) {
                  [[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleDefault];
                  UIColor *frontColor = [UIColor colorWithHexString:@"#000000"];
                  vc.navigationController.navigationBar.tintColor = frontColor;
                  NSDictionary *dict = @{NSForegroundColorAttributeName : frontColor};
                  [vc.navigationController.navigationBar setTitleTextAttributes:dict];
              }
              else if ([info[@"statusBarStyle"] isEqualToString:@"LightContent"])
              {
                  [[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleLightContent];
                  UIColor *frontColor = [UIColor colorWithHexString:@"#ffffff"];
                  vc.navigationController.navigationBar.tintColor = frontColor;
                  NSDictionary *dict = @{NSForegroundColorAttributeName : frontColor};
                  [vc.navigationController.navigationBar setTitleTextAttributes:dict];
              }
          }
      }