Представление заголовка по умолчанию для UITableView - PullRequest
4 голосов
/ 18 ноября 2009

У меня есть UITableView, который стилизован как сгруппированный табличный вид. При определенных обстоятельствах мне нужно создать пользовательское представление для заголовка, а при других обстоятельствах я хочу по умолчанию.

Создание настраиваемого заголовка является простой частью - просто используйте делегата:

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

Однако, что я вернусь от этого делегата, если я хочу вместо этого использовать представление заголовка по умолчанию?

Я попытался вернуть nil, и это работает только так, как ожидалось, когда табличное представление стилизовано как Plain. Если табличное представление стилизовано как сгруппированное, тогда заголовок по умолчанию исчезает, когда я возвращаю nil.

Как мне вернуть заголовок по умолчанию, учитывая, что мне иногда нужно также иметь настраиваемые представления заголовков?

Изменить:

Я думаю, что нашел проблему. В tableView: heightForHeaderInSection: я делаю следующее:

- (CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section
{
    if ([myArray count] == 0) return 80;
    else return [tableView sectionHeaderHeight];
}

Кажется, что [tableView sectionHeaderHeight] возвращает неверную высоту для моего заголовка. Устанавливается на 10, но должно быть около 30.

Ответы [ 3 ]

10 голосов
/ 22 октября 2011

Правильный ответ на поставленные выше вопросы:

Чтобы вернуть вид по умолчанию, верните nil

- (UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section {
   return nil;
}

Для возврата высоты заголовка по умолчанию верните -1

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

Это сработало для меня!

0 голосов
/ 23 июля 2015

На самом деле, если вы хотите заголовок по умолчанию, вы должны использовать следующий метод делегата :

- (NSString *)tableView:(UITableView *)tableView titleForHeaderInSection:(NSInteger)section
{
    return @"my title text";
}
0 голосов
/ 18 ноября 2009

Ответил на мой вопрос в редакции. Мне нужно было вернуть жестко заданную высоту для заголовка раздела.

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