⚠️⚠️⚠️首先要在项目的 Info.plist 文件里设置 View controller-based status bar appearance 为 YES,如果没有就不用添加⚠️ ⚠️⚠️

/*

1. 重写 UINavigationController 的 childViewControllerForStatusBarStyle

可以写在基类的 UINavigationController 中,也可以使用Category

*/

- (UIViewController *)childViewControllerForStatusBarStyle {

return self.topViewController;

}

///Swift

override var childForStatusBarStyle: UIViewController? {

return topViewController

}

/*

2. 在需要改变状态栏颜色的 UIViewController 中实现 preferredStatusBarStyle

*/

- (UIStatusBarStyle)preferredStatusBarStyle {

return UIStatusBarStyleLightContent;

// return UIStatusBarStyleDefault;

}

///Swift

override var preferredStatusBarStyle: UIStatusBarStyle {

return .lightContent

}

/*

3. 当触发某个条件需要改变状态栏颜色时在 UIViewController 中调用

然后在 - (UIStatusBarStyle)preferredStatusBarStyle; 中判断你的条件是否满足改变颜色

*/

[self setNeedsStatusBarAppearanceUpdate];

///Swift

setNeedsStatusBarAppearanceUpdate()

iOS修改状态栏颜色

OC 修改状态栏颜色

Swift修改状态栏颜色

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐