如何访问 UIImage 深色外观预 iOS13

How can I access UIImage dark appearance pre iOS13

我刚刚为我的应用程序添加了深色模式。

资产目录支持每个资产的多个外观,在 iOS 13 上,这意味着当系统 运行 处于深色或浅色模式时使用正确的资产。

这些不是我的真实资产

我正在尝试在旧 iOS 版本上支持暗模式。 在我这样做的尝试中,我添加了一个覆盖来强制暗模式,它适用于我的自定义颜色和主题,但不适用于图像。

是否可以在 iOS13 之前以编程方式访问图像的 dark 外观?

对于 iOS12,我尝试使用以下方法:

if #available(iOS 12.0, *) {
    let traits = UITraitCollection(userInterfaceStyle: .dark)
    let image = UIImage(
        named: "Image", 
        in: bundle, 
        compatibleWith: traits
    )
}

这只是returns正常的外观,方法命名似乎表明这只是检查我传递的特征集合是否与图像兼容。

据我所知,仅用一项资产是无法做到这一点的。 iOS 13 以下系统将始终采用 Any 外观。您需要创建两个名称不同的图像集,然后选择其中一个。

这有点令人困惑,因为 UIUserInterfaceStyle 在 iOS 12+ 中可用,但这可能是因为 macOS 在那一年获得了深色模式。