Программно удалите заголовок UITableView и автоматически измените размер содержимого, чтобы заполнить удаленную область
Я добавил UIButton
в раздел заголовка UITableView
через конструктор интерфейса и хотел бы удалить доступ к кнопке в определенных случаях. Я попытался использовать свойство .hidden = TRUE
, но он просто скрывает кнопку из представления, оставляя пробел позади. Как программно удалить заголовок UITableView
и автоматически изменить размер содержимого таблицы, чтобы заполнить удаленную область заголовка?
Ответы
Ответ 1
Если вы хотите удалить представление заголовка таблицы, просто установите для свойства myTable.tableHeaderView значение nil. Если то, что у вас есть на самом деле является заголовком раздела, вам нужно вернуть nil из метода viewForHeaderInSection и вызвать [myTableView reloadData]
Ответ 2
Вы также можете сделать:
- (CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section {
return 0.0;
}
Это, похоже, работает для моего (одного) заголовка раздела и позволяет избежать необходимости reloadData
.
Обратите внимание, что:
- (NSString *)tableView:(UITableView *)tableView titleForHeaderInSection:(NSInteger)section
все еще вызывается, но его возвращаемое значение, похоже, игнорируется.
Ответ 3
Я создал логическое свойство под названием removeHeader
, а затем, когда я хочу удалить свой заголовок, я вызываю:
func removeSectionHeader() {
removeHeader = true
self.tableView.reloadData()
}
Затем, когда моя таблицаView перезагрузится, он вызовет этот метод делегата tableView:
func tableView(_ tableView: UITableView, heightForHeaderInSection section: Int) -> CGFloat {
if removeHeader {
return 0.0
} else {
let height = self.tableView.sectionHeaderHeight
return height
}
}