首页 iOS 开发关于暗黑模式 (Dark Model) 的问题
文章
取消

iOS 开发关于暗黑模式 (Dark Model) 的问题

问题

iOS 13 中苹果终于引入了 暗黑模式 (Dark model). 这一特性虽然让人兴奋, 但是开发者在刚接触的时候也遇到了一些问题.

虽然已经发布的 App 在 Dark model 下没有任何问题 (默认关闭 Dark model). 但是我们的 新项目 和 老项目使用 Xcode 11 编译之后 部分控件使用了原生默认配置, 就会出现部分控件自动适配了 Dark model, 但是我们的自定义控件依旧是自定义的样式, 导致整体 UI 看起来不协调.

解决办法

解决这个问题有 2 个办法:

  1. 为 App 适配 Dark Model 的样式.
  2. 关闭工程的 Dark Model, 让其只支持我们原本的样式, 不对 Dark Model 自动适配.

适配 Dark Model

适配 Dark Model 需要公司 UI 为 Dark Model 专门设计一套 UI. 估计大部分公司不会费这种洋工夫.

关闭 Dark Model

1. 关闭工程的 Dark Model 很简单.

在 Info.plist 文件中添加字段 User Interface Style 其值设置为 Light. 这样系统就不会为你提供默认的 Dark Model 的适配了.

2. 关闭部分控制器的 Dark Model

在 iOS 13 中,UIView, UIViewController, UIWindow 新增了一个 overrideUserInterfaceStyle 的属性.

overrideUserInterfaceStyle 属性可以强制设置当前 视图 以及 子视图 的模式.

1
view.overrideUserInterfaceStyle = UIUserInterfaceStyleLight;

就可以使 view 以及其 子视图 的模式总是 Light 模式. 想同的 Dark 模式也是同理.

本文由作者按照 CC BY 4.0 进行授权