Вы смешиваете tableHeaderView
и представления заголовка раздела, которые различаются:
tableHeaderView
- представление, отображаемое в качестве заголовка для всего представления заголовка раздела UITableView - многоразовые представления, используемые для отображения заголовка над каждым разделом
В вашем случае вы хотите использовать представления заголовка раздела, поэтому вы должны возвращать пустые представления для не заинтересованных пользователей (я предполагаю, что здесь sectionNeedHeader
будетзаменяется вашим состоянием).
Кроме того, лучше использовать UITableViewHeaderFooterView
вместо UITableViewCell
.Поведение в целом такое же, но оно сделано для этого использования:
func tableView(_ tableView: UITableView, heightForHeaderInSection section: Int) -> CGFloat {
if sectionNeedHeader {
return 235.0
}
return 0.0
}
func tableView(_ tableView: UITableView, viewForHeaderInSection section: Int) -> UIView? {
if sectionNeedHeader {
let headerCell = tableView.dequeueReusableHeaderFooterView(withIdentifier: "HeaderView") as! CustomHeaderView
return headerView
}
return nil
}