首页 > 解决方案 > 在明暗主题之间切换

问题描述

我正在关注一篇文章,为我的一个应用程序实现明暗主题。这篇文章可以在这里找到。在本文中,使用了一种有趣的方法来一次编辑所有颜色,因此无需单独更改所有标签、背景……。新主题设置如下:

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 将被重新加载?

如果我提到的文章不是最佳实践,请指导我实现此功能的最佳方式。

标签: iosswiftuicollectionviewthemes

解决方案


这里。我认为这个 repo 可以给你一些建议。


推荐阅读