zoukankan      html  css  js  c++  java
  • iOS-状态栏字体颜色【白色】【Xcode9.1】

    Xcode9之前

    设置状态栏颜色首先在info.plist文件中,加入UIViewControllerBasedStatusBarAppearance = false;

        <key>UIViewControllerBasedStatusBarAppearance</key>
        <false/>

    让后在delegate didFinishLaunchingWithOptions 方法中加入下面的代码就可以了;

    [[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleLightContent animated:YES];
    [[UIApplication sharedApplication] setStatusBarHidden:NO withAnimation:UIStatusBarAnimationFade];

     

    Xcode9之后

    xcode9.1我在设置状态栏字体为白色时,按照上面的方法行不通,搜罗了一圈有了结果;

    同样在info.plist中,加入 UIViewControllerBasedStatusBarAppearance = true, 注意是true;

    <key>UIViewControllerBasedStatusBarAppearance</key>
    <true/>

    接着新建一个基于 UINavigationController 的类 BaseNavigationController,一个基于 UIViewController 类 BaseViewController ;

    BaseNavigationController.m

    -(UIViewController *)childViewControllerForStatusBarStyle {
        return self.topViewController;
    }
    
    -(UIViewController *)childViewControllerForStatusBarHidden {
        return self.topViewController;
    }

    BaseViewController.m

    -(UIStatusBarStyle)preferredStatusBarStyle{
        ///这里设置白色
        return UIStatusBarStyleLightContent;
    }
    -(BOOL)prefersStatusBarHidden{ return NO; }

    在项目中如果新建UINavigationController就继承BaseNavigationController,新建UIViewController就继承BaseViewController,这样就可以实现状态栏字体改变了;如果你是已经有的现有项目,可以扩展UINavigationController和UIViewController,来进行实现;

  • 相关阅读:
    Nginx 配置请求响应时间
    数论筛法小结
    梅田湖种田划水摸鱼记
    好题
    奇技淫巧 (不定期更新)
    随机化算法小结(Miller Rabin,Pollard Rho, 模拟退火, 随机化贪心)
    题解 P6918 [ICPC2016 WF]Branch Assignment
    P2605 [ZJOI2010]基站选址解题思路
    题解 BZOJ 3156 防御准备
    Flutter大坑 Your Xcode project requires migration 报错大坑
  • 原文地址:https://www.cnblogs.com/wangkejia/p/8000479.html
Copyright © 2011-2022 走看看