¿Cuál es la altura predeterminada de UITableViewCell?


166

Pensé que esta información habría sido más fácil de encontrar :-)

¿Cuál es la altura predeterminada de un UITableViewCell? Parece 44 píxeles, pero preferiría estar seguro.

Respuestas:


361

Son 44 píxeles. Seguro. Nunca olvidaré ese número.

44px es también la altura predeterminada para UIToolbar y UINavigationBar. (Ambos cambian a 32px cuando se autorotata a orientación horizontal)


61
Jaja, "Nunca olvidaré ese número" suena ominoso ;-)
Rob

44
@antony: view.bounds.size.height
samvermette el

44
@MikeyWard: Probablemente ya lo haya descubierto, pero el separador de 1px está incluido en la altura. En realidad, cubre el contenido más inferior de la célula.
Ben S

44
Técnicamente, son 44 puntos. Saldrá a 88 px en una pantalla Retina. No para partir cabellos ni nada.
Ben Mosher

23
tableView.rowHeight
Hunter

27

Si desea la dimensión predeterminada en cualquier dispositivo que pueda usar: UITableViewAutomaticDimension

- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath {

    return UITableViewAutomaticDimension;
}

Aunque 44 píxeles es actualmente el predeterminado, este es un método útil si su aplicación se basa en tener el valor predeterminado establecido.


3
Se le cambió el nombre a UITableView.automaticDimensionsSwift 4
Bot

Esto solo funciona si lo único que desea es la altura predeterminada. Si realmente desea un múltiplo de la altura predeterminada, el valor devuelto por esta no es una altura real. Apple ha ocultado la verdadera altura del punto detrás de este número mágico (que resulta ser -1).
PKCLsoft

16

Cuando style = UITableViewStyleGrouped, la altura predeterminada de las celdas superior e inferior es en realidad 45.0f(no 44.0f). Y, si la tabla agrupada es solo una fila, la altura de la celda será 46.0f.


¿eso incluye el separador?
lhunath

10

Si desea calcular esto sobre la marcha, simplemente asigne una celda de tabla ficticia y lea su altura

UITableViewCell *cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:@"Cell"];
int height = cell.frame.size.height ;

De esta manera te defiendes de los cambios en futuras versiones de iOS, aunque supongo que es poco probable.


Esto es problemático con la distribución automática
MobileMon

27
Todo es problemático con el autolayout.
devios1

problemático cómo, exactamente?
AndrewR

3

"Cuando style = UITableViewStyleGrouped, la altura predeterminada de las celdas superior e inferior es en realidad 45.0f (no 44.0f). Y, si la tabla agrupada es solo una fila, la altura de la celda será 46.0f". ¡¡Está incorrecto!! ¡44.0f de hecho! ¡Solo lo pruebo!


2

Eso suena bien. Pero para asegurarse de que puede cargar el generador de interfaces, coloque un UITableViewCell en el proyecto y luego verifique las propiedades de tamaño en la ventana del Inspector. No tengo mi MacBook conmigo en este momento, así que no puedo verificarlo. Pero si no obtiene una mejor respuesta de alguien, así es como puede verificarlo usted mismo.


Ah, está bien, ahí es donde originalmente obtuve el 44.
Rob

2

En Swift 4 y Swift 5 simplemente use:

UITableView.automaticDimension

Usar 44px no será suficiente porque variará con las diferentes densidades de píxeles de la pantalla.


0

En iOS 12, la altura predeterminada en dispositivos similares al iPhone X (X, XS, XS Max, XR) es de 49 puntos .

Otros dispositivos en iOS 12 todavía tienen 44 puntos por defecto. Es una diferencia sutil, pero se siente como una buena mejora en comparación directa.

Si no me crees, mide por ti mismo en esta captura de pantalla (no olvides dividir por 3) ...;)

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.