Есть ли способ принудительно обновить только один заголовок в UITableView? - PullRequest
10 голосов
/ 04 января 2012

У меня есть UITableView, где я хочу принудительно обновить только конкретную строку заголовка раздела, а не строки данных. Например, обновите заголовок раздела 3. Я знаю, как перезагрузить весь раздел (заголовок плюс данные), но можно ли обновить только заголовок раздела?

РЕДАКТИРОВАТЬ: Когда данные изменяются в одном разделе таблицы, я хочу обновить информацию в заголовке РАЗНОГО раздела. Поэтому мне нужно получить ссылку на заголовок раздела, а затем обновить его.

Ответы [ 4 ]

11 голосов
/ 04 января 2012

Если заголовок является пользовательским UIView, то вы можете просто позвонить setNeedsDisplay на UIView, а не на UITableView.

8 голосов
/ 06 июня 2016

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

, и я получаю его для обновления его высоты, используя: Этот код Swift 3+

//to reload your cell data
self.tableView.reloadData()
DispatchQueue.main.async {
// this is needed to update a specific tableview's headerview layout on main queue otherwise it's won't update perfectly cause reloaddata() is called
  self.tableView.beginUpdates()
  self.tableView.endUpdates()
}        
1 голос
/ 04 января 2012

UITableView * не имеет такого метода для перезагрузки только заголовка / заголовка ... Вы должны перезагрузить весь раздел или таблицу.

0 голосов
/ 08 февраля 2013

Прошу отличаться.Я столкнулся с этим при удалении строк с пользовательскими заголовками разделов и (по крайней мере, в iOS 6) вы можете просто вызвать:

[self tableView:self.tableView viewForHeaderInSection:[indexPath section]];

И до тех пор, пока у вас есть правильный код для возврата представления в этом методеВы можете легко обновить заголовок для определенного раздела:

- (UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section {

    if ([self tableView:tableView numberOfRowsInSection:section] == 0) {

        return nil; //hide the header if there are no rows...

    } else {
        // configure or refresh the header...
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...