Reputation: 6861
I use image, this image has two versions for light and dark UIUserInterfaceStyle
, but I need to use the image light version in one UIViewController
when Dark Mode is on. I know I can use tintColor
, but I want to find out if other ways to do this.
Upvotes: 3
Views: 2386
Reputation: 10493
Subramanian's answer is perfect for this use case.
However, I you really need just the UIImage
in a different style, you can do the following:
// 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)
Upvotes: 7
Reputation: 3886
You can opt out of dark mode for a particular view controller by setting the overrideUserInterfaceStyle property in viewDidLoad function. Sample snippet as follows.
override func viewDidLoad() {
super.viewDidLoad()
// Always adopt a light interface style.
overrideUserInterfaceStyle = .light
}
To opt out dark mode for your image view you can set as follows.
imageview. overrideUserInterfaceStyle = .light
You can check out further about opt out of dark mode from the link below. Hope it helps.
Upvotes: 1