Поскольку дизайн табличных представлений с использованием сгруппированного стиля значительно изменился с iOS 7, я хотел бы скрыть (или удалить) заголовок первого раздела. Пока мне это не удалось.
Несколько упрощенно, мой код выглядит следующим образом:
- (CGFloat) tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section
{
if (section == 0)
return 0.0f;
return 32.0f;
}
- (UIView*) tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section
{
if (section == 0) {
UIView* view = [[UIView alloc] initWithFrame: CGRectMake(0.0f, 0.0f, 640.0f, 0.0f)];
return view;
}
return nil;
}
- (NSString*) tableView:(UITableView *) tableView titleForHeaderInSection:(NSInteger)section
{
if (section == 0) {
return nil;
} else {
// return some string here ...
}
}
Если я верну высоту 0, другие два метода никогда не будут вызываться с индексом раздела 0. Однако пустой заголовок раздела по-прежнему выполняется с высотой по умолчанию. (В iOS 6 вызывается два метода. Однако видимый результат тот же.)
Если я возвращаю другое значение, заголовок секции получает указанную высоту.
Если я вернусь 0.01, это почти правильно. Однако, когда я включаю "Цветные несогласованные изображения" в симуляторе, он маркирует все ячейки табличного представления (что кажется логическим следствием).
Ответы на вопрос UITableView: скрыть заголовок из пустого раздела, похоже, указывают на то, что некоторым людям удалось скрыть заголовок раздела. Но это может относиться к простому стилю (вместо сгруппированного).
Лучший компромисс до сих пор возвращает высоту 0,5, что приводит к несколько более толстой линии под панелью навигации. Тем не менее, я был бы признателен, если кто-нибудь знает, как заголовок первого раздела может быть полностью скрыт.
Обновление
Согласно caglar анализу (qaru.site/info/73730/...), проблема возникает только в том случае, если таблица просмотр содержится в контроллере навигации.