问题
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 模式也是同理.