• 首页 首页 icon
  • 工具库 工具库 icon
    • IP查询 IP查询 icon
  • 内容库 内容库 icon
    • 快讯库 快讯库 icon
    • 精品库 精品库 icon
    • 问答库 问答库 icon
  • 更多 更多 icon
    • 服务条款 服务条款 icon

iOS 解决深色模式展示异常

武飞扬头像
CrazyApes
帮助1

新手入门
请多指教

前言

嗯,深色模式在iOS13版本就已经出了,但是呢,我们的app并没有适配(我也不知道为啥,可能是因为懒吧。。。)

最近用户使用的时候出问题了,首先是反馈说App里的字不显示
哎哟,我去。。
赶紧看一下
然后看到反馈的截图发现全是黑的,
不对呀,我们App设计的都是白色底色啊,
然后就突然想到iOS有个深色模式,果然在测试机上开启深色模式后,成功复现了问题。

解决方案

老规矩,先上答案,省的大家看我bb半天发现都是自己想找的信息。

不打算一个个适配,主要是缺少对应的图片适配。
所以直接打算暴力一点,禁用深色模式
或者说,强制app使用Light模式

在配置文件 info 下,新增 Appearance 属性,并设置值为Light
如下图所示
学新通

对应info.plist如下
学新通

然后你会惊喜的发现
最终info.plist 文件源码中xml属性
多了UIUserInterfaceStyle 属性 ,并且值为 Light
学新通

方便大家拷贝,贴下源码如下

// info.plist
<key>UIUserInterfaceStyle</key>
<string>Light</string>

好了,解决问题的大哥们可以撤了,下面是问题的发现和解决分析过程,基本是写给自己看的,想看的可以接续,不想看的可以直接去尝试代码了。

深色模式 Dark Mode

首先咱们先继续从没显示的原因说起来。
其实不是没显示出来,而是由于字体颜色被反转为白色,恰好背景也是白的,就木了。。。

咱是个iOS开发的二把刀,也不知道咋适配,先在网上查一下了解了解。

基本清一色的说可以通过info.plist文件添加如下内容解决。
<key>UIUserInterfaceStyle</key>
<string>Light</string>

我兴冲冲的就上了啊,先是在项目info里设置,
但是每次输完之后一敲回车都变成了Appearance属性
我那是还不知道这俩是一样的,寻思着,咋回事,不行啊。

然后去info.plist试试,当前是列表形式
如下图
学新通

敲完后也秒变Appearance
学新通

然后又看一波博客,发现有人说添加User Interface Style属性
诶,这个能输入。
最后就掉进了这个坑。
但是其实最终不会有效果。

然后反思下,刚才的变化,既然两次都是这么改变的,是不是二者就是同一个值呢?

这时重新操作了一遍,
这次通过source code 方式打开info.plist看了一下。
好家伙,就是同一个东西啊。

学新通

吃了基础知识不牢的亏啊。
特此记录下过程。
长个记性。

参考文献

iOS13-适配夜间模式/深色外观(Dark Mode)
UIUserInterfaceStyle
UIAppearance
stackoverflow dark-mode-on-ios-13

这篇好文章是转载于:学新通技术网

  • 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
  • 本站站名: 学新通技术网
  • 本文地址: /boutique/detail/tanhgcbfke
系列文章
更多 icon
同类精品
更多 icon
继续加载