Возможно ли обнаружить, что любой из пользователей выбрал темный режим на iPhone из xcode 10.x

Я все еще использую xcode 10.2.1 и не обновился до xcode 11 из-за некоторых других проблем. Теперь я хочу обнаружить, что пользователи iOS 13 выбрали темный режим или светлый режим в качестве настроек своего приложения.

Согласно документу Apple, если разработчик создает приложение с помощью предыдущего xcode, приложение по умолчанию будет в облегченном режиме, что в моем случае и нормально.

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

Вот фрагмент кода, который я использую:

if #available(iOS 13.0, *) {
            guard(traitCollection.responds(to: #selector(getter: UITraitCollection.userInterfaceStyle)))
                else { return }

            let style = traitCollection.userInterfaceStyle

            switch style {
            case .light:
                print("light")
            case .dark:
                print("dark")
            case .unspecified:
                print("unspecified")
            @unknown default:
                print("unspecified")
            }

        }

Но он всегда возвращается неопределенным или легким.


person Safiyan Zulfiqar    schedule 14.10.2019    source источник
comment
если ваше приложение построено на менее чем iOS 13 SDK, оно будет отображаться светлым и не будет поддерживать темный режим, поэтому вам не нужно проверять, пока вы не обновите Xcode и iOS SDK.   -  person Moayad Al kouz    schedule 14.10.2019
comment
Да, если SDK старый, я могу поддерживать темный режим. Их единственная причина знать - это знать количество пользователей, чтобы узнать серьезность обновления Xcode.   -  person Safiyan Zulfiqar    schedule 14.10.2019


Ответы (1)


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

if #available(iOS 13.0, *) {
    if UITraitCollection.current.userInterfaceStyle == .dark {
        print("Dark mode")
    }
    else {
        print("Light mode")
    }
}
person Enea Dume    schedule 14.10.2019
comment
UITraitCollection current доступен только в iOS 13 с xcode 11. Я ищу что-нибудь для Xcode 10.x - person Safiyan Zulfiqar; 14.10.2019