问题
iOS 13
中苹果终于引入了 暗黑模式 (Dark model). 这一特性虽然让人兴奋, 但是开发者在刚接触的时候也遇到了一些问题.
虽然已经发布的 App 在 Dark model 下没有任何问题 (默认关闭 Dark model). 但是我们的 新项目 和 老项目使用
Xcode 11
编译之后 部分控件使用了原生默认配置, 就会出现部分控件自动适配了 Dark model, 但是我们的自定义控件依旧是自定义的样式, 导致整体UI
看起来不协调.
解决办法
解决这个问题有 2 个办法:
- 为 App 适配
Dark Model
的样式. - 关闭工程的
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
模式也是同理.