Question

I essayé de remplacer la deuxième tableHeaderView. Mais il semble que la hauteur de celui-ci dans la méthode heightForHeaderInSection semble être 0. Ne peut pas l'expliquer, dois-je mettre dans un iVar parce que dans le viewForHeaderInSection je peux définir la vue sans aucun problème.

 - (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;
}
Était-ce utile?

La solution

Je pense que vous confondez l'en-tête de table et l'en-tête pour chaque section, ils sont différents. Il n'y a pas de « deuxième tableHeaderView », un UITableView a un tableHeaderView et dépend alors des méthodes de viewForHeaderInSection et heightForHeaderInSection pour placer des vues d'en-tête personnalisés pour chaque section, sinon vous utilisez juste titleForHeaderInSection pour y placer le texte.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top