RxDataSources не обновляет заголовок раздела - PullRequest
0 голосов
/ 02 октября 2018

Я использую RxDataSources для загрузки и отображения UITableview.Я пытаюсь обновить заголовок раздела количеством элементов, которые он содержит, однако, если правильно обновить ячейку и элементы, заголовок остается устаревшим.

Это мой код для объекта DataSource:

tableViewDataSource = RxTableViewSectionedAnimatedDataSource<TableViewParticipationSection>(
           configureCell: { (_, tableView, _, item) in
               return TableViewCellType.transformData(item).cell(inTableView: tableView)
       }, titleForHeaderInSection: { dataSource, index in
           let sectionModel = dataSource.sectionModels[index]
           return "\(sectionModel.items.count)"
           })

Идентификатор заголовка раздела просто {return 0}, поскольку у меня есть только один раздел.

Более того, я подтвердил, что если я использую этот код:

DispatchQueue.main.asyncAfter(deadline: .now()+3, execute: {
               self?.contentView.tableView.reloadData()
           })

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

Кто-нибудь имеет опыт работы с динамическими заголовками, использующими RxDataSources

Редактировать: После дальнейших экспериментов заголовок обновится, если я прокручиваю в виде таблицы, заголовок в какой-то момент изменится.

Ответы [ 2 ]

0 голосов
/ 22 июля 2019

В моем случае я установил новый пустой UIView для раздела в

func tableView(_ tableView: UITableView, viewForHeaderInSection section: Int) -> UIView? {
    if section == 0 {
        let customHeaderViewMulti = tableView.dequeueReusableHeaderFooterView(withIdentifier: "CustomHeaderView") as! CustomHeaderView
            return customHeaderView
        }
    return UIView()
}

Вы должны return nil для других случаев.

0 голосов
/ 02 октября 2018

Оказывается, что название или какие-либо данные о модели сечения не включены в diff, поэтому, что бы вы ни делали, это не будет иметь значения.RxDataSource не поддерживает нестатические заголовки.Решение состоит в том, чтобы создать собственное представление и выполнить привязку самостоятельно.

...