iOS13 暗黑模式(Dark Mode)适配 所踩的坑

DarkMode 主要从两个方面来适配,一是颜色,二是图片,简单的就不用多说,下面来说一下本人所踩的坑。

一、图片适配

图片适配很简单 如下图,准备两套图片(dark模式和any模式)如图箭头位置选择  Any,Dark  此时就完成了图片的适配。

iOS13 暗黑模式(Dark Mode)适配 所踩的坑_第1张图片
图片适配

注意:来回切换深色和浅色模式   有时候你会发现某些图片明明是设置了any 和 dark 两种图片但是并没有切换过来,此时你需要重写下列函数(监听模式变化) 然后在此函数中调用你设置图片的代码

- (void)traitCollectionDidChange:(nullableUITraitCollection *)previousTraitCollection NS_AVAILABLE_IOS(8_0);


二、颜色适配

官方并没有给出一个友好的方法来适配xib和sb中设置的颜色,WWDC演示的时候是在Assets.xcassets中设置颜色来适配iOS13 暗黑模式(WWDC链接) 但是 在Assets.xcassets中设置颜色只能支持iOS11  iOS11以下并不能使用。那么如何来适配iOS13 同时又支持iOS13以下的版本呢?

1、代码适配

代码适配对于xib和sb的工程比较繁琐 ,网上比较多。

2、Assets.xcassets + 代码 适配

公司项目使用的是xib和sb如果使用代码来适配颜色比较繁琐,所以放弃纯代码适配。 经过查资料和实践,找到了一个相对来说比较简单的方法来适配,方法如下

注意:由于之前在项目中已经设置了颜色,所以我们并不用对原来的xib文件进行改变。只需适配iOS13即可。

iOS13 暗黑模式(Dark Mode)适配 所踩的坑_第2张图片
设置两套颜色
iOS13 暗黑模式(Dark Mode)适配 所踩的坑_第3张图片
代码设置Assets.xcassets中设置的颜色

在Assets.xcassets中设置两套颜色 如上图所示。然后在代码中调用如上图所示。此时iOS13暗色模式图片和颜色适配已经完成

如果有更好适配颜色的方法可以留言,谢谢!

参考文档

iOS13 暗黑模式(Dark Mode)适配之OC版

iOS13-适配夜间模式/深色外观(Dark Mode)

iOS 13 适配

你可能感兴趣的:(iOS13 暗黑模式(Dark Mode)适配 所踩的坑)