iOS 如何在更改后重置 UITableView 颜色

标签 ios uitableview

我正在编写一个支持 Auto-Night theme 的 iOS 应用程序,并且有 UITableView 我需要处理夜间主题。

当应用程序启用夜间主题时,我更改了 UITableView 的背景颜色、部分标题背景颜色和自定义单元格的颜色。

我的问题是,当应用禁用夜间主题时,如何重置UITableView 的背景色 和相应的section header 背景色

我尝试在禁用夜间主题时调用 reloadData 方法,但颜色仍然是夜间主题。

我必须专门将这些颜色设置为默认值才能使其正常工作,但不知何故我觉得这不是“正确”的做法。

有没有办法将 UITableView 重置为默认颜色?提前致谢!

最佳答案

首先,当您禁用夜间模式时,将颜色设置回原始颜色没有任何问题。

但是,如果您确实想要优雅一点,您可以使用闭包变量来设置 TableView 的颜色,该闭包变量将确定深色模式是打开还是关闭,并相应地返回颜色。

var colorForTableView: (Bool) -> (UIColor) = { isDarkMode in

    let defaultColor = UIColor.white
    let darkColor = UIColor.black

    return isDarkMode ? darkColor : defaultColor
}

用法:

tableView.backgroundColor = colorForTableView(isDarkMode)

关于iOS 如何在更改后重置 UITableView 颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46678414/

相关文章:

iPhone 3GS +/iPad 1 + 最大硬件音频采样率

ios - 如何仅更改一个 View 的 navigationTitle 颜色?

ios - 使用 AVPlayer-Swift 无缝循环播放视频

ios - 如何对静态单元格进行编程以从 Storyboard中获取高度,同时对其他单元格进行编程以从代码中获取高度

ios - 一些用户没有出现在搜索解析 iOS 中

ios - React Native 模块,未找到 Cocoapod 文件

ios - 委托(delegate)按钮单击在 tableview 单元格中不起作用

ios - 无法识别正在播放的音频文件

ios - UITableView静态cell如何隐藏和显示

ios - Swift 2.2 – 如何为 UIView 中嵌套的 UIButton 调用 TouchesShouldCancelInContentView?