我正在关注一篇文章,为我的一个应用程序实现浅色和深色主题。可以在here中找到该文章。在本文中,一种有趣的方法用于一次编辑所有颜色,因此无需分别更改所有标签,背景等。新主题设置如下:
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的颜色等。但是,在某些UIViewControllers中,还有一个UICollectionView我也想更新。颜色保持不变,但是我想我需要重新加载数据才能使其正常工作?
我的问题是;设置其他主题后,如何实现将UICollectionViews重新加载的功能?
如果我提到的文章不是最佳实践,请引导我寻求实现此功能的最佳方法。