Вопрос

Я попытался переопределить второй tableHeaderView.Но кажется, что его высота в методе heightForHeaderInSection, по-видимому, равна 0.Не могу объяснить это, должен ли я поместить это в iVar, потому что в viewForHeaderInSection я могу установить представление без каких-либо проблем.

 - (NSString *)tableView:(UITableView *)tableView titleForHeaderInSection:(NSInteger)section {
if(section == 0)
    return @"Adding a new list";
else
    return @"Other lists";

}

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

if(section == 0) {
    return tableView.tableHeaderView;
} else {
    UIView *view = [[[UIView alloc] initWithFrame:CGRectMake(10, 10, 100, 50)] autorelease];
    view.backgroundColor = [UIColor redColor];

    return view;
}

}

- (CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section {
if(section == 0)
    return tableView.tableHeaderView.frame.size.height;
else
    return 30;
}
Это было полезно?

Решение

Я думаю, вы путаете заголовок таблицы и заголовок для каждого раздела, они разные.Нет "второго tableHeaderView", a UITableView имеет один tableHeaderView и тогда зависит от viewForHeaderInSection и heightForHeaderInSection методы для размещения пользовательских представлений заголовка для каждого раздела, в противном случае вы просто используете titleForHeaderInSection чтобы разместить там текст.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top