iOS 13 深色模式和启动屏幕 - iOS 10 的回退

iOS 13 DarkMode and LaunchScreen - Fallback for iOS 10

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

正如我们所知,这可以使用资产目录中的命名颜色来完成,这些颜色会根据设备的特性而变化。 这在 iOS 11 及更高版本中工作得很好,但在尝试支持 iOS 10:

时显示此错误
Named colors do not work prior to iOS 11.0.

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

我也考虑过根据 iOS 版本使用不同的启动屏幕故事板,但我找不到任何关于如何使用的信息。

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

谢谢, 菲利克斯

按照建议,解决方案是使用动态图像代替背景:

  1. 为浅色和深色模式创建 2 张具有纯色的图像。
  2. 将它们导入您的资产目录并定义“任何”/“深色”外观。
  3. 使用此图像(“缩放以填充”,约束到容器)在启动屏幕的背景中添加 UIImageView

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