iOS 13 отключить темный режим на виджете - PullRequest
1 голос
/ 07 октября 2019

Я успешно отключил темный режим в приложении, используя plist UIUserInterfaceStyle с ключом Light.

Но. Если я пытаюсь сделать то же самое для виджета, виджет все равно появляется в темном режиме. Я также попытался реализовать это в контроллере с overrideUserInterfaceStyle = .light. Ничего не произошло.

Каким-то образом Google Maps Widget удается стать Light в темном режиме. Итак, я вижу, что это возможно.

Кто-нибудь выключил темный режим для виджета?

Заранее спасибо за помощь!

1 Ответ

0 голосов
/ 08 октября 2019

Мне не удалось полностью отключить темный режим на виджете. Что я сделал, так это изменил цвета виджета, чтобы лучше обрабатывать пользовательский интерфейс и пользовательский интерфейс.

В контроллере вида виджета вы должны обработать переход в темный режим, например: var isDarkMode = false

override func willTransition(to newCollection: UITraitCollection, with coordinator: UIViewControllerTransitionCoordinator) {
    super.willTransition(to: newCollection, with: coordinator)

    if #available(iOS 12.0, *) {
        if (newCollection.userInterfaceStyle == .dark) {
            isDarkMode = true

        } else {
            isDarkMode = false
        }
    } else {
        isDarkMode = false
    }
}

`

обратите внимание также, что флаг isDarkMode должен быть инициализирован где-то в вашем коде в стартовом состоянии устройства

        isDarkMode = (self.traitCollection.userInterfaceStyle == .dark)

, как только вы узнаете, что выв темном режиме вы, вероятно, можете изменить дизайн интерфейса так, чтобы он соответствовал выбранным вами цветам.

HTH

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