web-dev-qa-db-fra.com

Hauteur par défaut pour l'en-tête de section dans UITableView

Je veux définir la hauteur du premier en-tête de mon UITableView. Pour les autres en-têtes, je veux qu’ils restent à la hauteur par défaut. Quelle valeur/constante puis-je mettre à la place de "someDefaultHeight" dans le code ci-dessous?

- (CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section
{
    if (section == 0)
        return kFirstHeaderHeight;

    return someDefaultHeight;
}

Merci

122
rein

Dans IOS 5.0, vous pouvez renvoyer UITableViewAutomaticDimension dans la plupart des méthodes de délégation. C’est au bas de la page de documentation.

- (CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section
{
    if(section == CUSTOM_SECTION)
    {
        return CUSTOM_VALUE;
    }
    return UITableViewAutomaticDimension;
}
200
Ajaxharg

En vérifiant les valeurs par défaut dans mon application, il semble que pour une table groupée, la hauteur par défaut soit 22 et que pour une table non groupée, la hauteur par défaut soit 10.

Si vous vérifiez la valeur de la propriété sectionHeaderHeight sur votre tableview, cela devrait vous indiquer.

49
paulthenerd

Fait le truc :)

- (CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section
{
    if(section == 0)
        return kFirstSectionHeaderHeight;
    return [self sectionHeaderHeight];
}
25
BadPirate

Par souci d’exhaustivité: dans iOS7 +, la hauteur des en-têtes de section de style groupés est 55.5 pour le premier et 38 pour les en-têtes suivants. (mesuré avec DCIntrospect)

6
ronhippler

Pour Swift 4.2, vous devez renvoyer UITableView.automaticDimension

3
Muvimotv

Pour obtenir la hauteur par défaut, laissez simplement super le gérer:

- (CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section
{
    if (section == 0)
        return kFirstHeaderHeight;

    return [super tableView:tableView heightForHeaderInSection:section];
}
2
Hendrik

Je ne sais pas quelle est la bonne réponse, mais ni 10 ni 22 ne semblent correspondre à la hauteur correcte pour une vue de table groupée sous iOS 5. J'utilise 44, sur la base de this question, et il semble au moins à peu près à la bonne hauteur.

2
Jason George