iOS 修改狀態欄顏色


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(),),);
  }


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM