1. 首页 > 电脑知识

iOS statusBar 字体设置为白色 苹果状态栏字体

作者:admin 更新时间:2025-06-23
摘要:第一种方法在 info.plist 中 View controller-based status bar appearance 设置为 NOUIApplication.shared.statusBarStyle = .lightContent随着苹果api的更新就会出一个黄色警告Setter for statusBarStyle was de,iOS statusBar 字体设置为白色 苹果状态栏字体

 

第一种 技巧

  • 在 info.plist 中 View controller-based status bar appearance 设置为 NO
  • UIApplication.shared.statusBarStyle = .lightContent
  • 随着苹果api的更新就会出一个 警告

    Setter for statusBarStyle was deprecated in iOS 9.0: Use -[UIViewController preferredStatusBarStyle]

    经查询 使用 [UIViewController preferredStatusBarStyle] 更合理,每个页面都可以方便的修改 statusBar 的颜色

    第二种 技巧

  • 在 info.plist 中 View controller-based status bar appearance 设置为 YES
  • 一般在创建工程之初都会自定义一个BaseNavigationViewController继承UINavigationController,也会创建一个BaseViewController继承UIViewController。

    在BaseNavigationViewController中重写 childForStatusBarStyle 技巧

    // BaseNavigationViewController 中的 技巧 override var childForStatusBarStyle: UIViewController? { return self.topViewController }

    在BaseViewController中重写 preferredStatusBarStyle 技巧。

    // BaseNavigationViewController 中的 技巧 override var preferredStatusBarStyle: UIStatusBarStyle { return .lightContent }

    具体 何者页面设置 何颜色在BaseViewController的子类中重写 preferredStatusBarStyle 技巧即可。

    后记: 在一次修改老项目 经过中就遇到了viewController中preferredStatusBarStyle 技巧不执行的情况,网上有两种说法: 1、需要隐藏 体系导航条; 2、没有隐藏的需要使用self.navigationController.navigationBar.barStyle方式修改。

    各种都尝试了就是不行, 最后发现和根视图中的childForStatusBarStyle 技巧有关,在这个 技巧返回你正在显示的viewController,preferredStatusBarStyle这个 技巧就开始执行了。

    如果根视图是tab,那就返回self.select;如果根视图是nav,那就返回self.top,根据实际情况而定。