我刚刚为我的应用添加了深色模式。
Assets 目录支持每个 Assets 的多种外观,在 iOS 13 上,这意味着当系统在暗模式或亮模式下运行时会使用正确的 Assets 。
我正在尝试在旧版 iOS 上支持深色模式。 在我这样做的尝试中,我添加了一个覆盖以强制暗模式,它适用于我的自定义颜色和主题,但不适用于图像。
是否可以在 iOS13 之前以编程方式访问图像的 dark
外观?
对于 iOS12,我尝试使用以下方法:
if #available(iOS 12.0, *) {
let traits = UITraitCollection(userInterfaceStyle: .dark)
let image = UIImage(
named: "Image",
in: bundle,
compatibleWith: traits
)
}
这只会返回正常外观,方法命名似乎暗示这只会检查我传递的特征集合是否与图像兼容。
最佳答案
据我所知,仅使用一项 Assets 是无法做到这一点的。在 iOS 13 以下系统将始终采用 Any
外观。您需要创建两个名称不同的图像集,然后选择其中一个。
这有点令人困惑,因为 UIUserInterfaceStyle
在 iOS 12+ 中可用,但这可能是因为 macOS 在那一年获得了深色模式。
关于ios - 如何访问 iOS13 之前的 UIImage 深色外观,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58341373/