W przypadku jednolitych kolorów tła ustawienie contentView.backgroundColor
powinno wystarczyć:
func tableView(_ tableView: UITableView, willDisplayHeaderView view: UIView, forSection section: Int) {
if let headerView = view as? UITableViewHeaderFooterView {
headerView.contentView.backgroundColor = .red // Works!
}
}
W przypadku kolorów z przezroczystością, w tym .clear
kolorów, to już nie działa:
func tableView(_ tableView: UITableView, willDisplayHeaderView view: UIView, forSection section: Int) {
if let headerView = view as? UITableViewHeaderFooterView {
headerView.contentView.backgroundColor = .clear // Does not work 😞
}
}
Aby uzyskać pełny przezroczysty nagłówek sekcji, ustaw backgroundView
właściwość na pusty widok:
func tableView(_ tableView: UITableView, willDisplayHeaderView view: UIView, forSection section: Int) {
if let headerView = view as? UITableViewHeaderFooterView {
headerView.backgroundView = UIView() // Works!
}
}
Uważaj jednak na możliwe skutki uboczne. O ile widok tabeli nie jest ustawiony na „Pogrupowane”, nagłówki sekcji będą przyciągane u góry podczas przewijania w dół. Jeśli nagłówki sekcji są przezroczyste, zawartość komórki będzie widoczna, co może nie wyglądać dobrze.
Tutaj nagłówki sekcji mają przezroczyste tło:
Aby temu zapobiec, lepiej ustawić tło nagłówka sekcji na jednolity kolor (lub gradient) pasujący do tła widoku tabeli lub kontrolera widoku.
Tutaj nagłówki sekcji mają całkowicie nieprzezroczyste tło gradientowe: