• iOS 修改状态栏颜色


    • 默认的黑色(UIStatusBarStyleDefault
    • 白色(UIStatusBarStyleLightContent

    可以设置的地方有两个:plist设置里面 和 程序代码里

    1.plist设置statusBar

    在plist里增加一行 UIStatusBarStyle(或者是“Status bar style”也可以),这里可以设置两个值,就是上面提到那两个
    UIStatusBarStyleDefaultUIStatusBarStyleLightContent

    这样在app启动的launch页显示的时候,statusBar的样式就是上面plist设置的风格。

    2.程序代码里设置statusBar

    在application didfinshed方法里:

    [[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleLightContent];

    或者

    //相对于上面的接口,这个接口可以动画的改变statusBar的前景色  
    [[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleLightContent animated:YES];
    

    如果上面设置状态栏颜色无效的话,试试下面方法

    1.将 View controller-based status bar appearance 删除(默认为 YES),或设置为YES 

    2.设置rootViewcontroller,如果为viewController,那么重写下面的方法

     -(UIStatusBarStyle)preferredStatusBarStyle
    {
        return UIStatusBarStyleLightContent;
    }

    如果rootviewcontroller为navgationController,那么可以在所管理的viewcontroller里写下面的代码

    如果项目中倒入了第三方重写文件,那么可能需要直接在其文件中进行下面修改,无须创建

    self.navigationController.navigationBar.barStyle = UIBarStyleBlack;

    或者为navgationcontroller写一个分类
    .h

    @interface UINavigationController (StatusBarStyle)
    
    @end

    注意:添加下面方法会有警告:添加下面的#pragma

    .m

    #import "UINavigationController+StatusBarStyle.h"
    
    @implementation UINavigationController (StatusBarStyle)
    
    - (UIStatusBarStyle)preferredStatusBarStyle {
    #pragma clang diagnostic push
    #pragma clang diagnostic ignored "-Wobjc-protocol-method-implementation"
    return UIStatusBarStyleLightContent;

    #pragma clang diagnostic pop


    }


    
    


    @end
  • 相关阅读:
    java 数据结构(八):Iterator接口与foreach循环
    java 数据结构(七):Collection接口
    java 数据结构(六):数组与集合
    java中equals(),hashcode()和==的区别
    Android中的IPC方式
    Android-如何防止apk被反编译
    Android-管理应用的内存(转)
    102. Binary Tree Level Order Traversal
    对于开发团队管理的理解
    TCP三次握手和四次挥手的全过程
  • 原文地址:https://www.cnblogs.com/niexiaobo/p/4936616.html
Copyright © 2020-2023  润新知