Tengo algunas tablas (estilo agrupado) en mi aplicación de iPhone (solo en una parte de la pantalla y agregué sin Interface Builder
embargo, no subclasificadas UITableViewController
) que el 80% del tiempo son pequeñas y caben en la pantalla. Cuando la tabla cabe en la pantalla, me gustaría deshabilitar el desplazamiento, para que quede un poco más limpio. Pero si la tabla se sale de la pantalla (cuando más tarde se le agregan filas), me gustaría habilitar el desplazamiento nuevamente (porque de lo contrario no podrá ver ese contenido).
¿Hay alguna forma de hacer esto? Parece que no puedo entenderlo. Yo sé hacer:
tableView.scrollEnabled = NO;
pero no estoy seguro de dónde, o si tengo que calcular el tamaño del objeto de la tabla o algo para que esto funcione.
Actualización : Aquí está la solución que finalmente funcionó para mí:
if (table.contentSize.height < table.frame.size.height) {
table.scrollEnabled = NO;
}
else {
table.scrollEnabled = YES;
}
Ejecuto este código después de llamar reloadData
a la tabla, y calcula los tamaños correctos y parece funcionar.
table.frame.size.height
es el tamaño real del objeto (puede ver esto en Interface Builder
) que se muestra en la pantalla, mientras table.contentSize.height
que las alturas de: el encabezado, el pie de página y la altura de cada celda se suman.