需求场景:
iOS13之后,用户可以一键把iPhone的主题色设为深色模式,对于我们开发者来说,理论上我们的App需要再做一套深色模式下的UI,对于一些自定义比较多的App来说简直就是噩梦。
比如以下这些情况:
App的某些页面或全部页面都是webview做的,再做一套UI的话前端大哥甩手不干;或者页面里的字体颜色背景颜色不是用的苹果原生color。
总之就是不想搞两套UI。
解决方案:
让用户无论是在浅色还是深色模式下,我们App的UI始终不变
1.全局(全部页面都只用一种UI):
在info.plist里面加一个key:UIUserInterfaceStyle
,把他的值设为Light
或Dark
2.部分页面:
override func viewDidLoad() {
super.viewDidLoad()
if #available(iOS 13.0, *) {
overrideUserInterfaceStyle = .light
//overrideUserInterfaceStyle = .dark
}
}
注:如果你的App只面向iOS13或以上的话,可以去掉if #available(iOS 13.0, *){}