2009-08-05 10 views
21

¡Saludos! Sé que UITableViewsectionHeaderHeight sólo se utiliza para las tablas agrupadas, pero voy a preguntar de todos modos (por si hay alguna manera de hacer esto que no es evidente) ...UITableView altura del encabezado de sección para la tabla no agrupada

¿Hay una manera de cambiar la altura del encabezado de sección (y con ella, la fuente/tamaño) para una tabla NON -agruped?

Esperando "sí" o al menos un "quizás" ... pero temiendo que sea un "no". Disculpe, amigos.

Respuesta

49

Sí.

Utilice este método delegado:

- (CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section { 
    return 44; 
} 

Por supuesto, cambiar según sea apropiado. Hay, por supuesto, el uno para el pie de página, así:

- (CGFloat)tableView:(UITableView *)tableView heightForFooterInSection:(NSInteger)section { 
    return 44; 
} 
+0

Gracias! Por supuesto, lo intenté en iPhone OS 3.0, pero no pareció funcionar. Simplemente se mantendría a la misma altura. Sin embargo, está funcionando bien en 3.1, así que sospecho que apruebo esta hasta "corrección de errores" o "error del piloto" de mi parte. (Siempre estoy feliz de admitir si es el último, pero no estoy seguro de por qué no funcionaba antes si esto no es una corrección de errores. Incluso si tuviera sectionHeaderHeight en juego, sería reemplazado por tableView: heightForHeaderInSection: Hmm ...) –

1

Al menos desde IOS 9 (prueba) UITableView.sectionHeaderHeight está trabajando para las vistas de tabla llano (no agrupados), así!

Obtendrá la altura del encabezado predeterminado (generalmente 22.0).

Por supuesto, el delegado de vistas de tabla puede haber personalizado este valor predeterminado en su método tableView: heightForHeaderInSection:.

El siguiente fragmento de código da la altura de un encabezado de sección definida:

CGFloat headerHeight = self.tableView.sectionHeaderHeight; 
if ([self.tableView.delegate respondsToSelector:@selector(tableView:heightForHeaderInSection:)]) { 
    // possibly custom header height 
    headerHeight = [self.tableView.delegate tableView:self.tableView heightForHeaderInSection:indexPathForCell.section]; 
} 
Cuestiones relacionadas