Je veux définir la hauteur du premier en-tête dans 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
Réponses:
Dans IOS 5.0, vous pouvez renvoyer UITableViewAutomaticDimension dans la plupart des méthodes de délégué. C'est au bas de la page de documentation
la source
UITableViewAutomaticDimension
renvoie-1
(const codé en dur) et je ne vois aucune section du tout dans monUITableView
.UITableViewAutomaticDimension
montre -1 quandNSLog
il?- (NSString *)tableView:(UITableView *)tableView titleForHeaderInSection:(NSInteger)section
si vous implémentez la- (UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section
méthode, cela ne fonctionne pas.UITableViewAutomaticDimension
elle aura une hauteur nulle.viewForHeaderInSection
vous avez juste besoin de définirestimatedSectionHeaderHeight
Après avoir vérifié les valeurs par défaut dans mon application, il semble que pour une table groupée, la hauteur par défaut est de 22 et pour une table non groupée, la hauteur par défaut est de 10.
Si vous vérifiez la valeur de la propriété sectionHeaderHeight sur votre tableview, cela devrait vous le dire.
la source
UITableViewStyleGrouped
a 22 ans etUITableViewStylePlain
10 ans.Faites vraiment l'affaire :)
la source
return [self.tableView sectionHeaderHeight];
, ou mieux encore,return [tableView sectionHeaderHeight];
. Cependant, les deux renvoient -1 pour moi, peut-être parce que je n'utilise pas de plume ou de storyboard.Par souci d'exhaustivité: dans iOS7 +, la hauteur des en-têtes de section de style groupé est
55.5
pour le premier et38
pour les en-têtes suivants. (mesuré avec DCIntrospect)la source
Pour swift 4.2, vous devez retourner UITableView.automaticDimension
la source
Je ne sais pas quelle est la bonne réponse ici, mais ni 10 ni 22 ne semblent être la bonne hauteur pour une vue de tableau groupée dans iOS 5. J'utilise 44, basé sur cette question, et il semble au moins à peu près la bonne hauteur.
la source
Pour obtenir la hauteur par défaut, laissez-la
super
gérer:la source
[super tableView:tableView heightForHeaderInSection:section];
renvoie 0 pour moi, peut-être parce que je n'utilise pas de plume ou de storyboard.Cela devrait faire l'affaire
la source
return [self sectionHeaderHeight];
[self sectionHeaderHeight];
produit une erreur. Voulez-vous dire[tableView sectionHeaderHeight];
?