Как использовать версию изображения Light UIUserInterfaceStyle в Dark Mode? - PullRequest
0 голосов
/ 22 октября 2019

Я использую изображение, у этого изображения есть две версии для светлого и темного UIUserInterfaceStyle, но мне нужно использовать светлую версию изображения в одном UIViewController, когда включен темный режим. Я знаю, что могу использовать tintColor, но я хочу выяснить, есть ли другие способы сделать это.

Ответы [ 2 ]

2 голосов
/ 23 октября 2019

Ответ 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)
1 голос
/ 22 октября 2019

Вы можете отказаться от темного режима для определенного контроллера представления, установив свойство overrideUserInterfaceStyle в функции viewDidLoad. Пример фрагмента следующим образом.

override func viewDidLoad() {
        super.viewDidLoad()

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

Чтобы отказаться от темного режима для просмотра изображений, вы можете установить его следующим образом.

imageview. overrideUserInterfaceStyle = .light

Подробнее о выходе из темного режима можно узнать изссылка ниже. Надеюсь, это поможет.

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

...