对于纯色背景,只需设置即可contentView.backgroundColor
:
func tableView(_ tableView: UITableView, willDisplayHeaderView view: UIView, forSection section: Int) {
if let headerView = view as? UITableViewHeaderFooterView {
headerView.contentView.backgroundColor = .red // Works!
}
}
对于具有透明性的颜色(包括.clear
颜色),这不再起作用:
func tableView(_ tableView: UITableView, willDisplayHeaderView view: UIView, forSection section: Int) {
if let headerView = view as? UITableViewHeaderFooterView {
headerView.contentView.backgroundColor = .clear // Does not work 😞
}
}
对于完整的透明节标题,请将backgroundView
属性设置为空视图:
func tableView(_ tableView: UITableView, willDisplayHeaderView view: UIView, forSection section: Int) {
if let headerView = view as? UITableViewHeaderFooterView {
headerView.backgroundView = UIView() // Works!
}
}
但是,请注意可能的副作用。除非表视图设置为“分组”,否则向下滚动时,节标题将在顶部对齐。如果节标题是透明的,则可以看到单元格的内容,看起来可能不太好。
在这里,节标题具有透明的背景:
为避免这种情况,最好将节标题的背景设置为与表格视图或视图控制器的背景相匹配的纯色(或渐变)。
在这里,节标题具有完全不透明的渐变背景: