对于纯色背景色,设置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!
}
}
但是,请注意可能的副作用。除非表格视图设置为“分组”,否则当向下滚动时,部分标题将在顶部对齐。如果部分标题是透明的,则单元格内容将被看穿,这可能看起来不太好。
在这里,节标题具有透明背景:
为了防止这种情况,最好将节标题的背景设置为与表格视图或视图控制器的背景相匹配的纯色(或渐变)。
在这里,节标题具有完全不透明的渐变背景: