我正在编写一个支持 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/