iOS 修改状态栏的颜色 preferredStatusBarStyle

⚠️⚠️⚠️首先要在项目的 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修改状态栏颜色

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容