iOS 13 DarkMode和LaunchScreen-适用于iOS 10的后备

时间:2019-09-23 14:41:00

标签: ios swift storyboard

我在白色背景上的launchscreen.storyboard上有一个蓝色徽标。 对于iOS 13引入的新DarkMode,我想反转颜色,即蓝色背景和白色徽标。

我们知道,可以使用资产目录中的命名颜色来完成此操作,颜色会根据设备的特性而变化。 在iOS 11及更高版本中,此功能完全可以正常工作,但在尝试支持iOS 10时显示此错误:

Named colors do not work prior to iOS 11.0.

我尝试用代码为启动屏幕场景创建视图控制器,并使用#ifavailable子句在那里设置颜色,但是编译器说启动屏幕可能没有与之关联的自定义类。

我还考虑过根据iOS版本使用不同的启动屏幕情节提要,但找不到任何方法。

我能做些什么? 如何解决这个问题?

谢谢, 费利克斯

1 个答案:

答案 0 :(得分:6)

根据建议here,解决方案是改为使用动态图片作为背景:

  1. 为浅色和深色模式创建2张具有纯色的图像。
  2. 将它们导入“资产目录”,并定义“任意” /“深色”外观。
  3. 在启动屏幕的背景中添加一个带有该图像的UIImageView(“缩放为填充”,限于容器)。

即使您的部署目标低于iOS 11.0,它也会编译,并在启动时显示适当的颜色。

Image in Asset Catalog

Launch Screen