Je pensais que cette information aurait été plus facile à trouver :-)
Quelle est la hauteur par défaut d'un UITableViewCell? Cela ressemble à 44 pixels, mais je préférerais être sûr.
C'est 44 pixels. Absolument. Je n'oublierai jamais ce nombre.
44px est également la hauteur par défaut pour UIToolbar et UINavigationBar. (Les deux basculent en 32px lors de la rotation automatique en orientation paysage.)
Si vous voulez la dimension par défaut sur n'importe quel appareil, vous pouvez utiliser: UITableViewAutomaticDimension
- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath {
return UITableViewAutomaticDimension;
}
Bien que 44 pixels soit actuellement la valeur par défaut, cette méthode est utile si votre application repose sur la définition de la valeur par défaut.
Lorsque style = UITableViewStyleGrouped
, la hauteur par défaut des cellules supérieure et inférieure est en réalité 45.0f
(et non 44.0f
). De plus, si la table groupée ne comporte qu'une seule ligne, la hauteur de la cellule sera 46.0f
.
Si vous voulez calculer cela à la volée, allouez une cellule de tableau factice et lisez-en la hauteur.
UITableViewCell *cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:@"Cell"];
int height = cell.frame.size.height ;
De cette façon, vous vous défendez contre les changements dans les versions futures d’iOS, bien que ce soit peu probable.
"Lorsque style = UITableViewStyleGrouped, la hauteur par défaut des cellules supérieures et inférieures est en fait de 45,0f (et non de 44,0f). Et, si le tableau groupé ne contient qu'une ligne, la hauteur de la cellule sera de 46,0f." ! 44.0f en fait! Je viens de le tester!
Cela sonne juste. Mais pour être sûr de pouvoir charger le générateur d’Interface, insérez un UITableViewCell dans le projet, puis vérifiez les propriétés de taille dans la fenêtre Inspecteur. Je n'ai pas mon MacBook avec moi pour le moment, donc je ne peux pas vérifier. Mais si vous n'obtenez pas une meilleure réponse de la part de quelqu'un, vous pourrez vérifier par vous-même.
Dans Swift 4 et Swift 5 utilisez simplement:
UITableView.automaticDimension
L'utilisation de 44 pixels ne suffira pas, car elle variera en fonction de la densité de pixels de l'écran.
Sur iOS 12, la hauteur par défaut sur les appareils similaires à l'iPhone X (X, XS, XS Max, XR) est 49pt.
Par défaut, les autres appareils sous iOS 12 ont toujours 44pt . C'est une différence subtile, mais cela donne l'impression d'une bonne amélioration par rapport à la comparaison directe.
Si vous ne me croyez pas, mesurez-vous dans cette capture d'écran (n'oubliez pas de diviser par 3) ...;)