Почему вы хотите это назвать?Это один из методов UITableViewDelegate, которые обычно вызываются автоматически при создании таблицы с помощью tableView. Объект класса tableView заполняет необходимые параметры при вызове этого метода.Контроллеру представления нужно только предоставить правильные методы делегата, настроенные вами, чтобы он мог правильно их настроить.
Вы настраивали код, как в этом примере, в своем классе делегата?
- (UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section
{
// create the parent view that will hold header Label
UIView* customView = [[UIView alloc] initWithFrame:CGRectMake(10.0, 0.0, 300.0, 44.0)];
// create the button object
UILabel * headerLabel = [[UILabel alloc] initWithFrame:CGRectZero];
headerLabel.backgroundColor = [UIColor clearColor];
headerLabel.opaque = NO;
headerLabel.textColor = [UIColor blackColor];
headerLabel.highlightedTextColor = [UIColor whiteColor];
headerLabel.font = [UIFont boldSystemFontOfSize:20];
headerLabel.frame = CGRectMake(10.0, 0.0, 300.0, 44.0);
// If you want to align the header text as centered
// headerLabel.frame = CGRectMake(150.0, 0.0, 300.0, 44.0);
headerLabel.text = <Put here whatever you want to display> // i.e. array element
[customView addSubview:headerLabel];
return customView;
}
Я не рядом с моим Mac, или я приведу один из моих собственных примеров.Но это общий способ использования этого метода.
Кстати, вы можете видеть, что на параметр tableView нет ссылки в приведенном выше примере кода.Если вы действительно хотите вызвать этот метод, используйте nil.Протокол UITableViewDelegate позволяет делегировать контроллер для более чем одного tableView.Если это происходит, метод должен проверить, какой tableView является справочным, чтобы можно было приспособить специализированное поведение для каждого tableView.
Дополнительная информация:
Если вы просто хотите увидеть, какова высота заголовка вашего tableView, вы можете оценить его свойство sectionHeaderHeight.Существуют и другие свойства, такие как sectionFooterHeight и rowHeight.
Вы должны знать, что существуют методы делегирования, которые помогают tableView, используя ваши настройки.Таким образом, метод делегата tableView: heightForHeaderInSection: фактически предназначен для вас, чтобы настроить высоту заголовка.Ваши методы делегата сообщают tableView, какова высота.Это не способ проверить свойство tableView.
В документации Apple говорится, что если вы настраиваете с помощью tableView: heightForHeaderInSection: тогда tableView sectionHeaderHeight недопустимо.Вы ожидаете этого, потому что это свойство относится к высоте всех заголовков разделов.
Используя свойство sectionHeaderHeight, которое вы можете записать в этом случае, вы можете установить все заголовки на одинаковую высоту.
Вот пример кода из того, над чем я сейчас работаю.Я добавил для вас заявление NSLog.
resultsTableVC = [[[ResultsTableVC alloc] initWithController:self] retain];
self.tableView = [[[UITableView alloc] initWithFrame:CGRectMake(0, 110, self.view.frame.size.width, self.view.frame.size.height-120) style:UITableViewStyleGrouped] retain];
self.tableView.autoresizingMask = UIViewAutoresizingFlexibleHeight;
self.tableView.autoresizesSubviews = YES;
self.tableView.layer.cornerRadius = 10.0f;
self.tableView.delegate = resultsTableVC;
self.tableView.dataSource = resultsTableVC;
self.tableView.backgroundView = nil;
self.tableView.backgroundColor = [UIColor clearColor];
self.tableView.separatorColor = [UIColor defaultResultTableBackgroundColor];
self.tableView.separatorStyle = UITableViewCellSeparatorStyleSingleLine;
[self.view addSubview:self.tableView];
NSLog(@"header: %f, row: %f", tableView.sectionHeaderHeight, tableView.rowHeight);
(Кто-то, вероятно, укажет, что некоторые из этих удержаний мне не нужны. Я все еще работаю над этим.)
Это говорит мне, что стандартная высота сечения равна 100, а стандартная высота строки равна 44.0.У меня есть указатель на мой tableView, свойство, которое я могу использовать через этот класс.
Теперь, если вы устанавливаете высоту заголовка с помощью tableView: heightForHeaderInSection: тогда у вас должна быть высота, уже рассчитанная в вашей программе.Я не думаю, что вы можете запросить высоту определенного раздела (или строки) после его установки.
Помогает ли это?