Frame of viewForHeaderInSection es siempre del mismo tamaño

- (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 cualquier 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 se implementó con el títuloForHeaderInSection. Pensé que solo implementaba la altura de la altura de tableHeader pero eso no funciona

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

Respuestas a la pregunta(1)

Su respuesta a la pregunta