代码之家  ›  专栏  ›  技术社区  ›  Wez

如何访问iIOS13之前的UIImage深色外观

  •  0
  • Wez  · 技术社区  · 6 年前

    我刚刚在我的应用程序中添加了暗模式。

    xcode image asset catalog appearances 这些不是我真正的资产

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

    是否可以访问 dark 在iOS13之前以编程方式显示图像?

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

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

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

    0 回复  |  直到 6 年前
        1
  •  4
  •   Frank Rupprecht    6 年前

    据我所知,只有一项资产是不可能做到这一点的。低于iOS 13时,系统将始终采用 Any 外貌您需要创建两个具有不同名称的不同图像集,并从中选择一个。

    这有点令人困惑,因为 UIUserInterfaceStyle 在iOS 12+中可用,但这可能是因为macOS在那年进入了黑暗模式。

    推荐文章