Configuración del estilo de los encabezados de sección UITableView
ios5 xcode4.2 (5)
Estoy trabajando con iOS 5 y tengo celdas generadas dinámicamente en una tabla (2 secciones de 3 filas cada una). Cada sección tiene un encabezado que también se genera dinámicamente usando la llamada titleForHeaderInSection
.
También tengo una imagen configurada como fondo para la tabla que hace que el color predeterminado de los encabezados de sección sea difícil de leer. ¡No he encontrado una forma de cambiar el color de los encabezados de sección (o el shadow color
, la font
, el text size
, etc.) a través de la interfaz del Guión gráfico o mediante programación! ¡Por favor ayuda!
La forma más fácil de obtener un encabezado de sección personalizado: ¡usa una celda!
Muy similar a la técnica utilizada para
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
Puede crear una instancia de un prototipo de celda que proporcione. Si su celda incluye una salida para una etiqueta, puede configurarla antes de devolverla:
- (UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger) section
{
SessionTableViewCell *cell;
cell = [tableView dequeueReusableCellWithIdentifier:@"SessionSectionHeader"];
if (cell == nil) {
cell = [[SessionTableViewCell alloc]
initWithStyle:UITableViewCellStyleDefault
reuseIdentifier:@"SessionSectionHeader"];
}
cell.myLabel.text = myTitles[section];
return cell;
}
Tenga en cuenta que @ "SessionSectionHeader" es el identificador en el guión gráfico de nuestro prototipo celular.
HTH!
La forma más fácil real
Si no está haciendo demasiadas modificaciones, por ejemplo, simplemente cambiando la fuente o los colores:
- (void)tableView:(UITableView *)tableView willDisplayHeaderView:(UIView *)view forSection:(NSInteger)section
{
UITableViewHeaderFooterView *tableViewHeaderFooterView = (UITableViewHeaderFooterView *)view;
tableViewHeaderFooterView.textLabel.font = [UIFont fontWithName:@"HelveticaNeue-Light" size:12.0f];
tableViewHeaderFooterView.textLabel.textColor = [UIColor colorWithRed:0.27f green:0.27f blue:0.27f alpha:1.0f];
tableViewHeaderFooterView.contentView.backgroundColor = [UIColor colorWithRed:0.87f green:0.87f blue:0.87f alpha:1.0f];
}
Esto también funciona en iOS5 +. Se aplica a todos los encabezados y pies de página en la vista de tabla y se adapta a mis necesidades.
- (void)viewDidLoad
{
[super viewDidLoad];
[[UILabel appearanceWhenContainedIn:[UITableViewHeaderFooterView class], nil] setFont:[UIFont fontWithName:@"MyFont" size:8]];
}
Dan
La clase UITableViewHeaderFooterView
implementa una vista reutilizable que se puede colocar en la parte superior o inferior de una sección de la tabla. Utiliza encabezados y pies de página para mostrar información adicional para esa sección.
Disponibilidad: iOS (6.0 y posteriores)
Ejemplo:
[[UILabel appearanceWhenContainedIn:[UITableViewHeaderFooterView class], nil] setColor:[UIColor whiteColor]];
Puede modificar el tamaño de fuente / color / etc creando su propia vista para el encabezado de la sección usando el método tableView:viewForHeaderInSection: