Я слежу за статьей по реализации светлой и темной темы для одного из моих приложений.Статью можно найти здесь .В этой статье интересный подход используется для редактирования всех цветов одновременно, поэтому нет необходимости менять все метки, фоны, ... по отдельности.Новая тема настроена так:
private func setNewTheme(_ newTheme: AppTheme) {
let window = UIApplication.shared.delegate!.window!!
UIView.transition(
with: window,
duration: 0.3,
options: [.transitionCrossDissolve],
animations: {
self.theme.value = newTheme
},
completion: nil
)
}
Предлагаю прочитать статью, чтобы понять всю работу этого механизма.Это прекрасно работает и меняет мои фоны, цвета UITabBar, цвета UINavigationController и т. Д. Однако в некоторых из моих UIViewController есть UICollectionView, который я также хотел бы обновить.Цвета остаются прежними, но я думаю, мне нужно перезагрузить данные, чтобы они работали?
Мой вопрос;Как я могу реализовать функциональность, при которой мои UICollectionViews будут перезагружаться, когда установлена другая тема?
Если статья, о которой я говорю, не является наилучшей практикой, пожалуйста, направьте меня к наилучшему способу реализации этой функции.