时间: 2020-08-25|tag: 27次围观|0 条评论

一、背景

暗黑模式一开启,APP没有适配,然后你发现,你输入的白底黑字,变成了白底白字,呈现在面前的,就是一片空白,是的,你没看错,就是一片空白。

来来来,有图有真相,我们以一叶来洞察整个森林,下面是一毛一样的页面和信息展示,只是分为正常和暗黑模式,显示效果显而易见。

1.正常Light模式

iOS 详解暗黑模式的关闭与适配插图
正常.PNG

2.暗黑模式,不要怀疑自己,没错,就是这样的。

iOS 详解暗黑模式的关闭与适配插图1
暗黑模式.PNG

3.话说回来,为什么要大搞特搞暗黑模式呢?甚至还强势要求微信适配,,,其实,还是为了用户更好的体验,在黑暗模式下,减少对眼睛的刺激,这样,以后你慢慢会发现,你的kindle已经很久不用了。。
4.交代使用版本
iMac macOS Mojave 10.14.6
Xcode 11.3.1
备注:使用iPhone7测试,模拟器也是可以使用暗黑模式的:设置->开发者->打开暗黑模式(Dark Appearance)。

二、关闭暗黑模式(如果你想关闭暗黑模式的话,读完这一段就可以停下了)

在info.plist文件中添加key:User Interface Style,值类型是String,值为Light,重新运行项目即可;
如图:

iOS 详解暗黑模式的关闭与适配插图2
3.png

如果是单页面想关闭暗黑模式的话,就用这句来实现:

// 这个属性会影响当前view/viewController/window以及它下面的任何内容;self.overrideUserInterfaceStyle = UIUserInterfaceStyleLight;

如果你想要的是关闭暗黑模式的话,读到这里可以say goodbye了。

三、适配暗黑模式

1.判断当前设备是否是暗黑模式
// 判断是否是暗黑模式BOOL isDark = (self.traitCollection.userInterfaceStyle == UIUserInterfaceStyleDark);
2.没改完,某些页面还不支持暗黑模式
// 设置单个页面不跟随暗黑模式改变self.overrideUserInterfaceStyle = UIUserInterfaceStyleLight;
3.系统颜色

在iOS13中,系统颜色是根据系统是默认模式还是暗黑模式而变化的。
苹果提供了一组动态颜色。

iOS 详解暗黑模式的关闭与适配插图3
systemcolor.png
4.语义化颜色

苹果还提供了一套根据颜色使用目的而约定颜色名称的语义化颜色,也是动态颜色。

iOS 详解暗黑模式的关闭与适配插图4
elementcolor.png
5.自定义颜色设置

在iOS 11中,我们可以直接在images.xcassets中添加颜色,现在加入暗黑模式对应的颜色。

iOS 详解暗黑模式的关闭与适配插图5
自定义颜色.png

使用时直接取颜色即可[UIColor colorNamed:@"atest_color"]

6.(占位ing)
// 占位ing// SF Symbols// 模糊效果// 富文本// layer// 其他新的变更

四、总结

还是感觉,别人写的文章好专业,自己还是花的时间和精力远远不够,到底应该如何平衡呢?

参考资料:

写给设计师的指南

Backwards compatibility for iOS 13 system colors

文章转载于:https://www.jianshu.com/p/cb5c08dd35f7

原著是一个有趣的人,若有侵权,请通知删除

本博客所有文章如无特别注明均为原创。
复制或转载请以超链接形式注明转自起风了,原文地址《iOS 详解暗黑模式的关闭与适配
   

还没有人抢沙发呢~