Как можно автоматически сбросить цвета всех подвидов на странице?
Я определяю цвета темного режима, делая что-то вроде этого:
static let textColor: UIColor = UITraitCollection.current.userInterfaceStyle == .light ? .black : .white
Если у пользователя открыто приложение, когда автоматически включается темный режим (в зависимости от настроек пользователя), цвета не меняются. Вам нужно закрыть приложение и снова открыть его, чтобы увидеть темный режим.
Как можно автоматически сбросить цвета всех подвидов на странице?
Вот что я пробовал:
override func traitCollectionDidChange(_ previousTraitCollection: UITraitCollection?) {
super.traitCollectionDidChange(previousTraitCollection)
view.layoutSubviews()
view.subviews.forEach {$0.layoutSubviews()}
}
LayoutSubviews не сбрасывает цвет.
Любые идеи?
Спасибо!
.userInterfaceStyle
в вашем коде. (2) Не должно быть необходимости вызыватьlayoutSubviews
, просто измените то, что вам нужно, на светлое / темное, и пусть ОС сделает всю работу. - person dfd   schedule 31.10.2020