Dark Mode 在iOS 13出现,已经两年了,没有做适配的同学,可以参考本文章,实现切换方案
⚠️注意:
Dark Mode 从iOS13开始才有,所以需要展示的地方需要增加判断 if #available(iOS 13.0, *)
👇下面开始具体讲述方案步骤:
一、实现要点概述
- 通过 Notification 进行传参
- 使用 UserDefault 或 MMKV 等存储当前选择的模式
- 配置 颜色 的自动切换
- 最终的切换操作都在 AppDelegate 中做处理
二、实现步骤
1. 配置颜色的自动切换
- 如果使用系统的颜色,需要逐个替换成新的颜色,例如 .red → .systemRed
- 如果使用自定义颜色,在
Assets.xcassets
里增加ColorSet
,并选择一种颜色的多种模式,如下图:
以上颜色的自动切换和配置就算完成了!
2. 切换模式的代码
UI就不概述了,从点击选择后开始讲述
- 点击对应的模式后,发送通知