iOS 13 暗黑模式和启动屏幕 - iOS 10 的后备方案

6

我在启动画面.storyboard 上有一个白色背景上的蓝色logo。 对于iOS 13引入的新DarkMode,我想颠倒颜色,即蓝色背景和白色logo。

正如我们所知道的,可以使用来自资源目录的命名颜色来完成这项任务,这些颜色会根据设备的特性而变化。 这在iOS 11及以上版本中完全正常工作,但在尝试支持iOS 10时会显示此错误:

Named colors do not work prior to iOS 11.0.

我尝试在代码中为启动屏幕场景创建视图控制器,并使用#ifavailable语句设置颜色,但编译器显示启动屏幕可能没有自定义类。

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

有什么解决办法吗?如何解决这个问题?

谢谢, Felix


你可以使用扩展中声明的颜色,而不是从resources.xcassets获取它。 - Reinier Melian
你能解释一下你所说的扩展是什么,以及我如何从Storyboard中访问它吗? - FlixMa
让我自己试一下,如果我错了,我会告诉你。 - Reinier Melian
1个回答

11
这里所建议的,解决方案是改用动态图片作为背景:
  1. 创建两个平面颜色对应浅色和深色模式的图片。
  2. 将它们导入Asset Catalog并定义“Any”/“Dark”外观。
  3. 在启动屏幕背景中添加一个UIImageView并使用该图像(“缩放填充”,约束到容器)。
这样即使您的部署目标低于iOS 11.0,也可以编译通过,并显示适当的颜色。

Asset Catalog中的图像

启动屏幕


不错!这是聪明的做法。 - Lucas Chwe
为什么我只看到白色启动屏幕?很难知道。 - famfamfam

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接