修改 iOS状态栏颜色(statusBar)

前言:

•  前景部分:就是指的显示电池、时间等部分;

• 背景部分:就是显示黑色或者图片的背景部分;

真机

1.前景部分:在某一个 ViewController 里面任意切换

1️⃣首先去 Info.plist 里面,把 UIViewControllerBasedStatusBarAppearance 设置为 NO;

Info.plist

2️⃣在你想要改变状态栏颜色的任何地方,写下面这行代码;

[UIApplication sharedApplication].statusBarStyle = UIStatusBarStyleDefault;(黑色)

[UIApplication sharedApplication].statusBarStyle = UIStatusBarStyleLightContent;(白色)

2.滑动触发

iOS-滑动改变状态栏颜色_腾讯视频


iOS-滑动改变状态栏颜色_腾讯视频

- (void)scrollViewDidScroll:(UIScrollView *)scrollView {

[self setNeedsStatusBarAppearanceUpdate];

}

-(UIStatusBarStyle)preferredStatusBarStyle {

if (contentOffsety > 44.0) {

return UIStatusBarStyleDefault; //黑色

}else {

return UIStatusBarStyleLightContent; //白色

}

}

3.背景部分

背景部分,简单来说,就是背景色;改变方法有两种:

系统提供的方法

navigationBar的setBarTintColor接口,用此接口可改变statusBar的背景色

注意:一旦你设置了navigationBar的- (void)setBackgroundImage:(UIImage *)backgroundImage forBarMetrics:(UIBarMetrics)barMetrics接口,那么上面的setBarTintColor接口就不能改变statusBar的背景色,statusBar的背景色就会变成纯黑色。

另辟蹊径

创建一个UIView,

设置该UIView的frame.size 和statusBar大小一样,

设置该UIView的frame.origin 为{0,-20},

设置该UIView的背景色为你希望的statusBar的颜色,

在navigationBar上addSubView该UIView即可。

refer:

Information Property List Key Reference: iOS Keys

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

推荐阅读更多精彩内容