【问题标题】:iOS 13 DarkMode and LaunchScreen - Fallback for iOS 10iOS 13 DarkMode 和 LaunchScreen - iOS 10 的后备
【发布时间】:2023-03-06 22:52:01
【问题描述】:

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

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

Named colors do not work prior to iOS 11.0.

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

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

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

谢谢, 费利克斯

【问题讨论】:

  • 您可以使用在扩展中声明的颜色,而不是从 resources.xcassets 获取它
  • 您能解释一下您的意思是什么扩展以及我如何从情节提要中访问它吗?
  • 让我自己试一试,我告诉你也许我错了

标签: ios swift storyboard


【解决方案1】:

正如here 建议的那样,解决方案是使用动态图像作为背景:

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

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

【讨论】:

  • 不错!这是一个聪明的方法。
  • 为什么我只看到白色的启动屏幕?很难知道
猜你喜欢
  • 2021-03-15
  • 1970-01-01
  • 2019-12-13
  • 2020-01-30
  • 1970-01-01
  • 2022-01-15
  • 2016-08-25
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多