Я хочу установить высоту первого заголовка в моем UITableView. Для других заголовков я хочу, чтобы они оставались высотой по умолчанию. Какое значение / константу я могу использовать вместо someDefaultHeight в приведенном ниже коде?
- (CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section
{
if (section == 0)
return kFirstHeaderHeight;
return someDefaultHeight;
}
Спасибо
Ответы:
Начиная с IOS 5.0, вы можете возвращать UITableViewAutomaticDimension в большинстве методов делегата. Его внизу страницы документации
источник
UITableViewAutomaticDimension
возвратов-1
(жестко запрограммированная const), и я не вижу никаких разделов в моем файлеUITableView
.UITableViewAutomaticDimension
показывает -1 когдаNSLog
это?- (NSString *)tableView:(UITableView *)tableView titleForHeaderInSection:(NSInteger)section
если вы реализуете- (UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section
метод, это не сработает.UITableViewAutomaticDimension
он будет иметь нулевую высоту.viewForHeaderInSection
вам просто нужно установитьestimatedSectionHeaderHeight
После проверки значений по умолчанию в моем приложении, похоже, что для сгруппированной таблицы высота по умолчанию составляет 22, а для несгруппированной таблицы по умолчанию - высота 10.
Если вы проверите значение свойства sectionHeaderHeight в своем табличном представлении, это должно вам сказать.
источник
UITableViewStyleGrouped
22 года иUITableViewStylePlain
10 лет.Собственно сделайте свое дело :)
источник
return [self.tableView sectionHeaderHeight];
, или еще лучше,return [tableView sectionHeaderHeight];
. Однако оба возвращают для меня -1, возможно, потому, что я не использую перо или раскадровку.Для полноты: в iOS7 + высота заголовков разделов сгруппированных стилей указана
55.5
для первого и38
для последующих заголовков. (измерено с помощью DCIntrospect)источник
Для быстрой версии 4.2 вы должны вернуть UITableView.automaticDimension
источник
Я не уверен, какой здесь правильный ответ, но ни 10, ни 22 не кажутся правильной высотой для представления сгруппированной таблицы в iOS 5. Я использую 44, основываясь на этом вопросе, и, по крайней мере, кажется примерно правильная высота.
источник
Чтобы получить высоту по умолчанию, просто позвольте
super
обработать ее:источник
[super tableView:tableView heightForHeaderInSection:section];
возвращает мне 0, возможно, потому что я не использую перо или раскадровку.Это должно помочь
источник
return [self sectionHeaderHeight];
[self sectionHeaderHeight];
выдает ошибку. Вы имели в виду[tableView sectionHeaderHeight];
?