hello~
关于界面的需求。我总结了以下几点。咱们可以交流看看。
我的想法是我们可以直接用系统的api去实现白色和黑色的界面。
1. 我们可以根据获取的开关状态来设置ViewController.overrideUserInterfaceStyle 属性。
- 如果开关返回
light(浅色模式),
ViewController.overrideUserInterfaceStyle=UIUserInterfaceStyleLight;
- 如果开关返回
dark(深色模式),
ViewController.overrideUserInterfaceStyle=UIUserInterfaceStyleDark;
这个变化的好处是,当模式改变的时候,是所有此控制器中的控件立即变化颜色。
2. 关于界面控件的深浅模式的适配
图片,可以在Assets.xcassets中配置三种模式的图片,分别为
any,dark,light可以做到立即根据当前模式变化。文字,背景色设置时 ,新出了
[UIColor colorWithDynamicProvider:^UIColor * _Nonnull(UITraitCollection * _Nonnull traitCollection) {
if (traitCollection.userInterfaceStyle==UIUserInterfaceStyleLight){
return [UIColor blackColor];
}
else{
return [UIColor whiteColor];
}
}];
这个方法,可以根据模式返回不同的自定义颜色。