如何访问 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 在那一年获得了深色模式。
我刚刚为我的应用程序添加了深色模式。
资产目录支持每个资产的多个外观,在 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 在那一年获得了深色模式。