Primera sección de UITableView oculta por viewForHeaderInSection

Tengo un UITableView que es una vista de tabla agrupada. Estoy tratando de agregar una imagen como encabezado de la vista de tabla (y solo para la primera sección). El problema que tengo es que la imagen cubre la primera sección de la vista de tabla.

Aquí está el código:

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

    UIView *headerView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, tableView.frame.size.width, 80)];
    NSData *imageData = [[NSData alloc] initWithContentsOfURL:[NSURL URLWithString:@"http://www.eventsforacausesf.com/uploads/8/7/3/0/8730216/3416277_orig.jpg"]];
    UIImageView *imageView = [[UIImageView alloc] initWithFrame:CGRectMake(0, 0, headerView.frame.size.width, headerView.frame.size.height)];
    imageView.image = [UIImage imageWithData:imageData];
    [headerView addSubview:imageView];

    if (section == 0) {
        return headerView;
    }
    return nil;
}

Por ejemplo, en la imagen de abajo, la primera sección de la vista de tabla está oculta detrás de la imagen. Necesito mover esa sección debajo de la imagen.

Descripción

preguntado el 12 de abril de 13 a las 19:04

2 Respuestas

Lo que está configurando con ese método de fuente de datos es un encabezado para una sección particular de la vista de tabla, pero me parece que lo que desea es configurar el tableViewHeader de la vista de tabla en sí. Establezca la vista de su tabla tableViewHeader propiedad a su vista de encabezado en lugar de devolver la vista de encabezado como un encabezado de sección. Luego obtendrá el encabezado estándar de iOS frente al diseño de contenido.

Respondido 12 Abr '13, 19:04

También necesitas implementar tableView:heightForHeaderInSection: para devolver la altura de la vista de la imagen.

Respondido 12 Abr '13, 19:04

Eso funciono. El otro problema que noté ahora es que cuando implemento tableView: viewForHeaderInSection, la tableView: titleForHeaderInSection porque la sección no se muestra por alguna razón - Ashish Agarval

Si devuelve una vista != nil, entonces no se llama a titleForHeader…. Pero puede llamarlo desde dentro de viewForHeader... y usar la cadena allí. - MacMark

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.