iOS如何在更改

时间:2017-10-11 01:36:25

标签: ios uitableview

我正在编写支持自动夜晚主题的iOS应用,并且UITableView我需要处理夜间主题。

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

我的问题是,当应用停用夜间主题时,如何重置 UITableView的背景颜色以及相应的部分标题背景颜色

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

我必须专门将这些颜色设置为默认设置才能使其正常工作,但不知怎的,我觉得这不是“正确的”#39;这样做的方式。

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

1 个答案:

答案 0 :(得分:2)

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

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

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

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

    return isDarkMode ? darkColor : defaultColor
}

用法:

tableView.backgroundColor = colorForTableView(isDarkMode)