Программно удаляет заголовок UITableView и автоматически изменяет размер содержимого, чтобы заполнить удаленную область - PullRequest
18 голосов
/ 02 марта 2011

Я добавил UIButton в заголовочный раздел UITableView через конструктор интерфейса и хотел бы в некоторых случаях закрыть доступ к кнопке.Я попытался использовать свойство .hidden = TRUE, но оно просто скрывает кнопку от вида, оставляя пустое пространство позади.Как программно удалить заголовок UITableView и сделать так, чтобы содержимое таблицы автоматически изменяло размеры, чтобы заполнить удаленную область заголовка?

Ответы [ 3 ]

55 голосов
/ 02 марта 2011

Если вы хотите удалить представление заголовка таблицы, просто установите для свойства myTable.tableHeaderView значение nil.Если у вас есть заголовок раздела, то вам нужно вернуть nil из метода viewForHeaderInSection и вызвать [myTableView reloadData]

20 голосов
/ 17 сентября 2011

Вы также можете сделать:

- (CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section {
    return 0.0;
}

Это похоже на мой (единственный) заголовок раздела и избавляет от необходимости reloadData.

Обратите внимание, что:

- (NSString *)tableView:(UITableView *)tableView titleForHeaderInSection:(NSInteger)section

все еще вызывается, но его возвращаемое значение, похоже, игнорируется.

0 голосов
/ 11 августа 2017

Я создал логическое свойство с именем removeHeader, а затем, когда захочу удалить свой заголовок, я вызываю:

func removeSectionHeader() {
        removeHeader = true
        self.tableView.reloadData()
    }

Затем, когда мой tableView перезагрузится, он вызовет метод делегата tableView:

func tableView(_ tableView: UITableView, heightForHeaderInSection section: Int) -> CGFloat {
        if removeHeader {
            return 0.0
        } else {
            let height = self.tableView.sectionHeaderHeight
            return height
        }
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...