首页 > 移动平台 > 详细

iOS 修改状态栏颜色

时间:2021-01-28 17:54:43      阅读:308      评论:0      收藏:0      [点我收藏+]

iOS中修改状态颜色在iOS9后官方废弃了下面这种方法

 [[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleDefault];
//‘setStatusBarStyle:‘ is deprecated: first deprecated in iOS 9.0 - Use -[UIViewController preferredStatusBarStyle]
 [[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleLightContent];

iOS9以后使用下面这种方式来修改颜色

- (UIStatusBarStyle)preferredStatusBarStyle{
    NSLog(@"go style");
    return UIStatusBarStyleLightContent;
}

如果你的页面有导航栏,则使用上面这这种方式将无法生效,针对有导航栏的,需要在baseNavigationController中加入重写childViewControllerForStatusBarStyle方法

- (UIViewController *)childViewControllerForStatusBarStyle {
    return self.topViewController;
}

然后在需要修改修改状态栏颜色的controller中重写preferredStatusBarStyle方法

-(UIStatusBarStyle)preferredStatusBarStyle {
    return UIStatusBarStyleLightContent; // your own style
}

注意:重写preferredStatusBarStyle修改状态栏如果要生效,一定要在info.plist中配置View controller-based status bar appearance=YES

flutter中修改状态栏颜色的方法:
配置全局白色状态栏

  SystemChrome.setSystemUIOverlayStyle(SystemUiOverlayStyle.light);

配置某个页面状态栏颜色

@override
  Widget build(BuildContext context) {

    return AnnotatedRegion<SystemUiOverlayStyle>(
      value: SystemUiOverlayStyle.light,
      child: Material(child:Scaffold(),),);
  }

iOS 修改状态栏颜色

原文:https://www.cnblogs.com/qqcc1388/p/14339251.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!