2011-06-14 9 views
6

Estoy intentando crear encabezados de sección personalizados para una UITableView. He encontrado algunas referencias que ilustran cómo hacer esto completamente en el código (# 1349571).¿Cómo personalizar el encabezado de sección de TableView con un XIB?

Estoy tratando de determinar si es posible crear un UIView en Interface Builder y usarlo para personalizar el encabezado de manera similar a cómo es posible hacer esto para una UITableViewCell?

Respuesta

7

SÍ Es posible usar la vista de encabezado creada con XIB. Cree un XIB y la clase para administrar el XIB (clase UIView). Utilice

YourNibClassName* v = [[[NSBundle mainBundle] loadNibNamed:@"YOUR_XIB_NAME" owner:self options:nil] firstObject]; 

//With this method you can load any xib for header view 

tableView.tableHeaderView = v; 
[v release]; 

EDITAR

Retorno este punto de vista en el viewForHeaderInSection como esto

YourNibClassName* v = [[[NSBundle mainBundle] loadNibNamed:@"YOUR_XIB_NAME" owner:self options:nil] firstObject]; 
//Do some stuff here like setting text on labels etc. 
return [v autorelease]; 
0

agregarlo como etiquetas encima de la mesa y quitar el encabezado de la tabla hebra que lo hice una vez que sé que suena raro pero funcionó

3

Dado que tenemos celdas de prototipo, también puede agregar un prototipo de celda a su mesa. Completa el identificador de la celda del prototipo en Interface Builder. (por ejemplo, HeaderCell) Puede usarlo en viewForHeaderForSection como si usara celdas en cellForRowAtIndexPath.

Ejemplo:

- (UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section { 
    UIView *headerView = [tableView dequeueReusableCellWithIdentifier:HeaderCellID]; 
    UILabel *label = (UILabel *)[headerView viewWithTag:100]; 
    label.text = [self tableView:self.tableView titleForHeaderInSection:section]; 

    return headerView; 
} 
+0

No sé por qué no pensé en esto antes. Funciona bien y de manera más sencilla para cualquier encabezado complejo, especialmente cuando se utiliza el diseño automático, se extrae una gran cantidad de código constante. ¡Gracias! – WCByrne

Cuestiones relacionadas