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;
}