Вы должны проверить переменную 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
) автоматически адаптируются к новому стилю пользовательского интерфейса.