如何在深色模式下使用 Light UIUserInterfaceStyle 图像版本?

How to use Light UIUserInterfaceStyle image version in Dark Mode?

我用的是图片,这张图片有明暗两个版本UIUserInterfaceStyle,但我需要在打开深色模式时使用一个UIViewController的图片浅色版本。我知道我可以使用 tintColor,但我想知道是否有其他方法可以做到这一点。

您可以通过在 viewDidLoad 函数中设置 overrideUserInterfaceStyle 属性 来为特定视图控制器选择退出暗模式。示例片段如下。

override func viewDidLoad() {
        super.viewDidLoad()

        // Always adopt a light interface style.    
        overrideUserInterfaceStyle = .light
    }

要为您的图像视图选择退出深色模式,您可以进行如下设置。

imageview. overrideUserInterfaceStyle = .light

您可以在下面的 link 中进一步了解选择退出深色模式。希望对你有帮助。

https://developer.apple.com/documentation/xcode/supporting_dark_mode_in_your_interface/choosing_a_specific_interface_style_for_your_ios_app

Subramanian 的回答非常适合这个用例。

不过,如果你确实需要不同样式的 UIImage,你可以执行以下操作:

// create a trait collection with `light` interface style
let traitCollection = UITraitCollection(userInterfaceStyle: .light)

// If you have an existing image, you can change it's style like this: 
let lightImage = image.withConfiguration(traitCollection.imageConfiguration)

// Or if you load the image by name, you can do this:
let lightImage = UIImage(named: "imageName", in: nil, compatibleWith: traitCollection)