Как перезагрузить только заголовки разделов tableView? - PullRequest
0 голосов
/ 29 апреля 2019

Поэтому я пытаюсь изменить заголовки раздела 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()

Так что мне просто нужно знать, как перезагрузить только заголовки разделов, и моя проблема будет решена.

1 Ответ

0 голосов
/ 29 апреля 2019

Вы можете просто итерировать заголовки разделов вручную.

for section in 0..<tableView.numberOfSections {
    guard let header = tableView.headerView(forSection: section) else {
        continue
    }
    // do something with the header
}

Если у вас много разделов, вы можете перебирать только видимые заголовки. Просто используйте tableView.visibleCells для сбора индексов видимых разделов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...