Высота по умолчанию для заголовка раздела в UITableView
Я хочу установить высоту первого заголовка в UITableView. Для других заголовков я хочу, чтобы они оставались по умолчанию. Какую ценность/константу я могу использовать вместо "someDefaultHeight" в приведенном ниже коде?
- (CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section
{
if (section == 0)
return kFirstHeaderHeight;
return someDefaultHeight;
}
Спасибо
Ответы
Ответ 1
В IOS 5.0 и далее вы можете вернуть UITableViewAutomaticDimension в большинстве методов делегата. Его внизу страницы документации
- (CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section
{
if(section == CUSTOM_SECTION)
{
return CUSTOM_VALUE;
}
return UITableViewAutomaticDimension;
}
Ответ 2
От проверки значений по умолчанию в моем приложении это выглядит как для сгруппированной таблицы, по умолчанию это высота 22, а для негруппированной таблицы по умолчанию - высота 10.
Если вы проверите значение свойства sectionHeaderHeight в своем представлении таблицы, которое должно сказать вам.
Ответ 3
Соблюдай трюк:)
- (CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section
{
if(section == 0)
return kFirstSectionHeaderHeight;
return [self sectionHeaderHeight];
}
Ответ 4
Для полноты: в iOS7 + высота заголовков разделенных разделов стиля 55.5
для первого и 38
для следующих заголовков.
(измеряется с помощью DCIntrospect)
Ответ 5
Я не уверен, какой правильный ответ здесь, но ни 10, ни 22 не являются правильной высотой для сгруппированного представления таблицы в iOS 5. Я использую 44 на основе этот, и он, по крайней мере, примерно соответствует правильной высоте.
Ответ 6
Чтобы получить высоту по умолчанию, просто отпустите super
:
- (CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section
{
if (section == 0)
return kFirstHeaderHeight;
return [super tableView:tableView heightForHeaderInSection:section];
}
Ответ 7
Для swift 4.2 вы должны вернуть UITableView.automaticDimension
Ответ 8
Это должно сделать трюк
- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
{
if(indexPath.section == CUSTOM_SECTION)
{
return CUSTOM_VALUE;
}
return [tableView rowHeight];
}