Как я могу проверить, включен ли темный режим в iOS / iPadOS?

Короткий ответ: раннее (или статическое) привязку относится к привязке времени компиляции и позднему (или динамическому) привязке относится к привязке времени выполнения (например, когда вы используете отражение).

17
задан Tamás Sengel 3 June 2019 в 23:44
поделиться

4 ответа

Для iOS 13 , Вы можете использовать эту собственность проверить, является ли текущий стиль темным способом или нет:

if #available(iOS 13.0, *) {
    if UITraitCollection.current.userInterfaceStyle == .dark {
        print("Dark mode")
    }
    else {
        print("Light mode")
    }
}
8
ответ дан 28 November 2019 в 20:43
поделиться

Вы можете использовать этот добавочный номер:

import UIKit

extension UIApplication {
    @available(iOS 13.0, *)
    var userInterfaceStyle: UIUserInterfaceStyle? {
        return self.keyWindow?.traitCollection.userInterfaceStyle
    }
}

@available(iOS 13.0, *)
    func setSystemTheme() {
        switch UIApplication.shared.userInterfaceStyle {
        case .dark?:
            currentTheme = .dark
        case .light?:
            currentTheme = .light
        default:
            break
        }
    }
1
ответ дан 28 November 2019 в 20:43
поделиться

1/для UIView/UIViewController:

self.traitCollection.userInterfaceStyle == .dark

2/для статического или другого:

UITraitCollection.current.userInterfaceStyle == .dark

, НО:

//Never use this! You will get wrong value in app extensions (ex. ToDay widget)
UIScreen.main.traitCollection.userInterfaceStyle == .dark //WRONG!
4
ответ дан 28 November 2019 в 20:43
поделиться

Создайте функцию класса в течение времени метода записи 1 и используйте везде, Вы хотите

class func isDarkMode()->Bool{
        if #available(iOS 12.0, *) {
            if UIScreen.main.traitCollection.userInterfaceStyle == .dark {
                return true
            } else {
                return false
            }
        } else {
           return false
        }
    }  
0
ответ дан 28 November 2019 в 20:43
поделиться
Другие вопросы по тегам:

Похожие вопросы: