首页 > 解决方案 > iOS 13 DarkMode 和 LaunchScreen - iOS 10 的后备

问题描述

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

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

Named colors do not work prior to iOS 11.0.

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

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

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

谢谢,菲利克斯

标签: iosswiftstoryboard

解决方案


正如这里所建议的,解决方案是使用动态图像作为背景:

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

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

资产目录中的图像

启动屏幕


推荐阅读