2009-08-05 3 views
21

Salutations! Je sais que UITableViewsectionHeaderHeight est utilisé uniquement pour les tables groupées, mais je vais quand même demander (dans le cas où il y a une façon de faire qui est pas évident) ...Hauteur d'en-tête de section UITableView pour une table non groupée

est-il un moyen de changer la hauteur de l'en-tête de section (et avec elle, la police/la taille) pour une table NON?

Espérant «oui» ou au moins un «peut-être» ... mais craignant que ce ne soit un «non». Avoir à ce sujet, les gens.

Répondre

49

Oui.

Utilisez cette méthode déléguée:

- (CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section { 
    return 44; 
} 

Bien sûr, changer le cas échéant. Il y a bien sûr celui de bas de page ainsi:

- (CGFloat)tableView:(UITableView *)tableView heightForFooterInSection:(NSInteger)section { 
    return 44; 
} 
+0

Merci! Bien sûr, j'ai essayé cela dans iPhone OS 3.0, mais cela ne semblait pas fonctionner. Cela resterait juste à la même hauteur. Cependant, ça marche très bien en 3.1, donc je pense que nous avons craqué pour celui-ci "bug fix" ou "erreur de pilotage" de ma part. (Toujours heureux d'admettre si c'est le dernier, mais je ne suis pas sûr que _why_ ça ne fonctionnait pas plus tôt si ce n'est pas une correction de bogue.Même si j'avais sectionHeaderHeight en lecture, elle serait surchargée par tableView: heightForHeaderInSection: Hmm ...) –

1

au moins depuis iOS 9 (testé) UITableView.sectionHeaderHeight travaille pour les vues de table simples (non groupées) aussi bien!

Vous obtiendrez la hauteur de l'en-tête par défaut (généralement 22,0).

Bien sûr, le délégué des vues de table a peut-être personnalisé cette valeur par défaut dans sa méthode tableView: heightForHeaderInSection:.

L'extrait de code suivant donne la hauteur d'un en-tête de section définie:

CGFloat headerHeight = self.tableView.sectionHeaderHeight; 
if ([self.tableView.delegate respondsToSelector:@selector(tableView:heightForHeaderInSection:)]) { 
    // possibly custom header height 
    headerHeight = [self.tableView.delegate tableView:self.tableView heightForHeaderInSection:indexPathForCell.section]; 
} 
Questions connexes