• iOS之 状态栏字体颜色的设置


    前一段时间接手一个项目后,熟悉的过程中发现了不少问题,其中有一个就是关于状态栏的问题。

    我们都知道:状态栏字体颜色在不同界面不一样的,原因是系统设置的时候把状态栏的字体颜色的界面控制器设置的yes。

    那么问题来了,如果我自定义了导航栏,而状态栏的字体颜色是希望统一颜色,怎么办?

    方法一:我们可以一个界面一个界面的去设置,因为apple已经给出了系统方法:

    //默认的值是黑色的
    -(UIStatusBarStyle)preferredStatusBarStyle
    {
        return UIStatusBarStyleDefault;
        
    }
    
    // 是否隐藏状态栏
    - (BOOL)prefersStatusBarHidden
    {
        return NO;
    }

     当然这样,会很繁琐,我们也不推荐使用,并且还会出现这种情况:设置后并没有显示效果。

    方法二:application中设置状态栏的字体颜色(推荐使用)

    1、系统给出的状态栏风格

    typedef NS_ENUM(NSInteger, UIStatusBarStyle) {
        UIStatusBarStyleDefault                                     = 0, // Dark content, for use on light backgrounds
        UIStatusBarStyleLightContent     NS_ENUM_AVAILABLE_IOS(7_0) = 1, // Light content, for use on dark backgrounds
        
        UIStatusBarStyleBlackTranslucent NS_ENUM_DEPRECATED_IOS(2_0, 7_0, "Use UIStatusBarStyleLightContent") = 1,
        UIStatusBarStyleBlackOpaque      NS_ENUM_DEPRECATED_IOS(2_0, 7_0, "Use UIStatusBarStyleLightContent") = 2,
    } 

     2、在application中设置状态栏的字体颜色代码

    - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
    {
        //设置状态栏字体颜色
        [[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleLightContent animated:YES];
    }

     

    如果只是这样在设置 application 中设置,并没有什么用,还需要一些配置才行,具体如下:

    在plist文件中添加:View controller-based status bar appearance 并设置为 NO 即可。

     这是你再次运行项目,就会发现所有界面的状态栏字体颜色都一样。

     

     

  • 相关阅读:
    PHP strcmp,strnatcmp,strncmp函数的区别
    PHP echo,print_r(expression),var_dump(expression)区别
    PHP包含文件语句include和require的区别
    PHP魔术变量__METHOD__,__FUNCTION__的区别
    解决margin重叠的问题
    冒牌、选择、插入排序算法
    == 和 === 的区别
    Javascript常见浏览器兼容问题
    浏览器常见兼容性问题汇总
    JS中replace()用法举例
  • 原文地址:https://www.cnblogs.com/LQCQ-Silent/p/6075913.html
Copyright © 2020-2023  润新知