ios - 在明暗主题之间切换
问题描述
我正在关注一篇文章,为我的一个应用程序实现明暗主题。这篇文章可以在这里找到。在本文中,使用了一种有趣的方法来一次编辑所有颜色,因此无需单独更改所有标签、背景……。新主题设置如下:
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 将被重新加载?
如果我提到的文章不是最佳实践,请指导我实现此功能的最佳方式。
解决方案
看这里。我认为这个 repo 可以给你一些建议。
推荐阅读
- java - 有没有办法将 Java TreeMap 序列化为 JSON?
- r - 使用R计算另一个文件中一个文件元素的频率
- c# - 如何从mvc中的动态表中检索数据
- video.js - 使用 video.js 进行低延迟 RTMP 播放
- python - 具有最小二乘的回溯线搜索算法实现
- amazon-redshift - Redshift - 根据过滤条件从表中提取数据
- java - 响应式 Jersey HTTP 客户端缺少依赖项
- python - 为什么 df['text'].str.contains('.') 总是返回 True?
- php - PHP“header(”Connection:close“)”和“flush()”在生产服务器上不起作用
- c++ - 访问边界外的数组元素是否会损坏它