如何在深色模式下使用 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 中进一步了解选择退出深色模式。希望对你有帮助。
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)
我用的是图片,这张图片有明暗两个版本UIUserInterfaceStyle
,但我需要在打开深色模式时使用一个UIViewController
的图片浅色版本。我知道我可以使用 tintColor
,但我想知道是否有其他方法可以做到这一点。
您可以通过在 viewDidLoad 函数中设置 overrideUserInterfaceStyle 属性 来为特定视图控制器选择退出暗模式。示例片段如下。
override func viewDidLoad() {
super.viewDidLoad()
// Always adopt a light interface style.
overrideUserInterfaceStyle = .light
}
要为您的图像视图选择退出深色模式,您可以进行如下设置。
imageview. overrideUserInterfaceStyle = .light
您可以在下面的 link 中进一步了解选择退出深色模式。希望对你有帮助。
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)