Поэтому я пытаюсь изменить заголовки раздела UITableView
на цвет фона и текста при переключении с одного сегмента на другой на сегментированном элементе управления.Для этого мне нужно перезагрузить данные tableView, но я хочу только перезагрузить заголовки разделов.При использовании
tableView.reloadData()
Это работает, но также сбрасывает остальные данные в tableView, что я не пытаюсь сделать.
override func tableView(_ tableView: UITableView, titleForHeaderInSection section: Int) -> String? {
let stringForThemeHeader = "Theme Settings"
let stringForToggleHeader = "Password Settings"
if section == 0 {
return stringForThemeHeader
} else {
return stringForToggleHeader
}
}
Это код для настройкиназвания.
override func tableView(_ tableView: UITableView, willDisplayHeaderView view: UIView, forSection section: Int) {
let header = view as! UITableViewHeaderFooterView
if darkModeSegmentedControlSwitcher.selectedSegmentIndex == 1 || darkModeSegmentedControlSwitcher.selectedSegmentIndex == 2 {
view.tintColor = UIColor.red
header.textLabel?.textColor = UIColor.white
} else {
view.tintColor = UIColor.init(red: 247.0/255.0, green: 247.0/255.0, blue: 247.0/255.0, alpha: 1.0)
header.textLabel?.textColor = UIColor.black
}
}
и это код для изменения текста и фона.После выбора сегмента он не изменится, пока данные всего tableView не будут перезагружены с использованием
tableView.reloadData()
Так что мне просто нужно знать, как перезагрузить только заголовки разделов, и моя проблема будет решена.