美文网首页
修改 iOS状态栏颜色(statusBar)

修改 iOS状态栏颜色(statusBar)

作者: 缺钱睡不着 | 来源:发表于2017-04-11 20:33 被阅读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

    相关文章

      网友评论

          本文标题:修改 iOS状态栏颜色(statusBar)

          本文链接:https://www.haomeiwen.com/subject/muwuattx.html