zoukankan      html  css  js  c++  java
  • iOS13 关闭黑暗模式+状态栏显示问题解决方法

    现象:

    iOS13黑暗模式开启后,app显示会出现很多意外显示情况。暂时屏蔽是最好的选择。当开启黑暗模式,且在项目的target对应的info.plist中添加以下设置时(禁用黑暗模式):

    <key>UIUserInterfaceStyle</key>
    <string>Light</string>
    

    app在系统黑暗模式下可以正常显示了。但是仔细看会发现状态栏无法显示!
    在项目的target对应的info.plist中添加以下设置:

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

    再运行就可以看到状态栏了!

    特殊情况(暗色系导航栏)

    如果项目中有更改系统导航栏背景色,比如下面代码:

    self.navigationController.navigationBar.barTintColor = [UIColor blackColor];
    
    //barTintColor 设置时,系统会自动把导航栏设置为半透明,若不想要半透明效果,需要设置 translucent 为 NO
    self.navigationController.navigationBar.translucent = NO;
    

    此时状态栏的黑色字体在背景色上会无法显示!
    为了可以正常显示状态栏字体,通过作如下设置,即可设置状态栏文字为白色:

    更改 info.plist 配置

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

    在相关控制器重写状态栏样式代码

    - (UIStatusBarStyle)preferredStatusBarStyle{
        return UIStatusBarStyleLightContent;
    }
    

    对于常见视图结构( tabbarVC 下多个子导航控制器),可放在自定义导航控制器中(放在 tabbarVC 无效)。

    学无止境,快乐编码。 没有一种不经过蔑视、忍受和奋斗就可以征服的命运。
  • 相关阅读:
    搭建本地源
    shell中tar加密打包
    mysql出现ERROR 1819 (HY000)的解决方法
    mysql 创建用户及授权(2)
    mysql 创建用户及授权(1)
    Redis 工具 redis-port 使用
    mysql中 drop、truncate和delete的区别
    dlerror和dlclose用法
    dlsym用法
    dlopen用法
  • 原文地址:https://www.cnblogs.com/Dast1/p/11640503.html
Copyright © 2011-2022 走看看