iphone uitableview grouped-table

iphone - Frame of viewForHeaderInSection siempre tiene el mismo tamaño



uitableview grouped-table (1)

Necesitas implementar este método de delegado.

- (CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section;

En su caso, simplemente puede return 30; .

Además, estás perdiendo view !

Su [view release] pasa después de la return . Pero tan pronto como se produce el return la ejecución del método se cancela y su release nunca se invoca.

Así que quieres esto en su lugar

UIView *view = [[[UIView alloc] initWithFrame:CGRectMake(10, 10, 100, 30)] autorelease];

Y deshacerse de la release explícita abajo.

- (UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section { if(section != 0) { UIView *view = [[[UIView alloc] initWithFrame:CGRectMake(10, 10, 100, 30)] autorelease]; view.backgroundColor = [UIColor redColor]; return view; } else { return tableView.tableHeaderView; }

}

Esta es mi implementación de viewForHeaderInSection pero, independientemente del marco que haga, siempre me muestra el mismo marco rojo. ¿Ves algún problema con mi código?

Imagen:

ACTUALIZAR:

Mhm ahora mi bloque rojo es más alto, pero mi primer tableHeader ahora está de alguna manera oculto. El primero fue implementado con el titleForHeaderInSection. Pensé que solo implementaba la altura de tableHeader height pero eso no funciona

- (CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section { if(section == 1) return 30; else return tableView.tableHeaderView.frame.size.height; }