2012-04-28 23 views
5

Estoy un poco atascado tratando de crear un encabezado de tabla ios personalizado. Los encabezados son 30px de alto y estoy utilizando este código para crearlos:encabezado personalizado se superpone a las celdas en el grupo

- (UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section { 
    NSString *sectionTitle = [self tableView:tableView titleForHeaderInSection:section]; 
    if (sectionTitle == nil) { 
     return nil; 
    } 

    // Create label with section title 
    UILabel *label = [[UILabel alloc] init] ; 
    label.frame = CGRectMake(0, 0, 140, 30); 
    label.backgroundColor = [UIColor colorWithPatternImage:[UIImage imageNamed:@"header_gradient.png"]]; 
    label.textColor = [UIColor whiteColor]; 
    label.shadowColor = [UIColor whiteColor]; 
    label.shadowOffset = CGSizeMake(0.0, 1.0); 
    label.font = [UIFont boldSystemFontOfSize:12]; 
    label.text = sectionTitle; 

    // Create header view and add label as a subview 
    UIView *view = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 140, 30)]; 
    [view addSubview:label]; 

    return view; 
} 

- (CGFloat)tableView:(UITableView *)tableViewheightForHeaderInSection:(NSInteger)section { 
    return 30; 
} 

Casi funciona, pero mis cabeceras parecen colisionará con las células/encabezados por debajo de ellos:

custom headers

Puede ¿Alguien me señala la dirección correcta para limpiar los encabezados aquí?

Gracias de antemano

Respuesta

14

te falta un [espacio]:

Usted tiene:

- (CGFloat)tableView:(UITableView *)tableViewheightForHeaderInSection:(NSInteger)section { 

que debe ser:

- (CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section { 
+0

Debe ser realmente '- (CGFloat) tableView: (UITableView *) tableView heightForHeaderInSection: (NSInteger) sección' – omz

+0

Correcto. La declaración correcta es la siguiente (desde los documentos): - (CGFloat) tableView: (UITableView *) tableView heightForHeaderInSection: (NSInteger) sección - si está prestando mucha atención, falta un [espacio] entre tableView y heightForHeaderInSection. . Lo extrañé por completo la primera vez, de ahí por qué asumí que el estuche de camello estaba apagado. He actualizado la respuesta. Gracias por la captura! –

+0

gracias por la ayuda ... ¡Me estaba volviendo loca intentando descubrir por qué eso no funcionaba! – akhalsa

Cuestiones relacionadas