Custom Header en UITableView

Convertir NSString date en custom NSString date
10 marzo, 2014
Plugin SyntaxHighlighter Evolved
11 marzo, 2014

Learn-Objective-CEn esta oportunidad tenía que resolver en forma programática la personalización de la cabecera (Header) de un UITableView.

Para esto solo quiero abordar los dos puntos mas importantes que consiste en implementar dos métodos que tienen la finalidad de :

  • Customizar el UIView que se muestra en pantalla:

 

-(UIView*) tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section{

    UIView *result = nil;

    if( section == 0 ){
        NSMutableString* title = [[NSMutableString alloc] initWithString:@"Título o lo que necesites que muestre"];
        UIView* backgroundView = [[UIView alloc] initWithFrame:CGRectMake(0,0, tableView.frame.size.width, 30)];
        [backgroundView setBackgroundColor:[UIColor whiteColor]]; // Color de fondo

        UILabel* lbTitle = [[[UILabel alloc] init] autorelease]; // Label 
        [lbTitle setText: title];
        [lbTitle setNumberOfLines:0]; // Multiline
        [lbTitle setFont:[UIFont fontWithName:@"Verdana" size:12]];
        CGSize size = [lblTitle.text sizeWithFont: lbTitle.font
                                constrainedToSize:CGSizeMake(backgroundView.frame.size.width - 10, 10000)];
        [lbTitle setFrame:CGRectMake(10,
                                      10,
                                      size.width,
                                      size.height)];

        [backgroundView addSubview:lbTitle]; // Agrego el label al UIView

        [backgroundView sizeToFit];
        [lblTitle sizeToFit];

        return backgroundView; // Devuelvo el UIView con el UIlabel incrustado
    }

    return result;

}
  • Al existir la probabilidad que el ancho ( Height ) del Header tenga que modificarse, hay que customizarlo también:

 

- (CGFloat) tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section{
    if(section == 0)
        return 40.0f;
    return  0.0f;
}

Espero les resulte de utilidad como a mi!

Deja un comentario