修改 iOS状态栏颜色(statusBar)

2017-04-11  本文已影响0人  缺钱睡不着

前言:

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

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

真机

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

上一篇下一篇

猜你喜欢

热点阅读