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

Начиная с iOS / iPadOS 13, доступен темный стиль пользовательского интерфейса, аналогичный темному режиму, представленному в macOS Mojave. Как я могу проверить, активировал ли пользователь общесистемный темный режим?

1 Ответ

7 голосов
/ 04 июня 2019

Вы должны проверить переменную userInterfaceStyle, равную UITraitCollection, так же, как в tvOS и macOS.

switch traitCollection.userInterfaceStyle {
case .light: //light mode
case .dark: //dark mode
case .unspecified: //the user interface style is not specified
}

Вы должны использовать функцию traitCollectionDidChange(_ previousTraitCollection: UITraitCollection?) UIView / UIViewController для обнаружения изменений в среде интерфейса (включая изменения в стиле пользовательского интерфейса).

Из Документация разработчика Apple :

Система вызывает этот метод при изменении среды интерфейса iOS. Реализуйте этот метод в контроллерах представления и представлениях, в соответствии с потребностями вашего приложения, чтобы реагировать на такие изменения. Например, вы можете настроить макет подпредставлений контроллера представления, когда iPhone поворачивается из книжной в альбомную ориентацию. Реализация по умолчанию этого метода пуста.

Системные элементы пользовательского интерфейса по умолчанию (такие как UITabBar или UISearchBar) автоматически адаптируются к новому стилю пользовательского интерфейса.

...