Как я могу получить доступ к UIImage темной внешности до iOS13 - PullRequest
1 голос
/ 11 октября 2019

Я только что добавил темный режим в свое приложение.

Каталоги активов поддерживают множественные появления для каждого актива, в iOS 13 это означает, что правильный актив используется, когда система работает в темном или светлом режиме.

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
    )
}

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

1 Ответ

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

Насколько я знаю, нет способа сделать это только с одним активом. Ниже iOS 13 система всегда будет выглядеть как Any. Вам нужно будет создать два разных набора изображений с разными именами и выбрать одно из них.

Это немного сбивает с толку, поскольку UIUserInterfaceStyle доступно в iOS 12+, но, скорее всего, потому, что macOS получил Dark Modeв этом году.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...