Poiché il design delle viste tabella che utilizzano lo stile raggruppato è cambiato notevolmente con iOS 7, vorrei nascondere (o rimuovere) la prima intestazione di sezione. Finora non sono riuscito a raggiungerlo.
Un po 'semplificato, il mio codice ha questo aspetto:
- (CGFloat) tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section
{
if (section == 0)
return 0.0f;
return 32.0f;
}
- (UIView*) tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section
{
if (section == 0) {
UIView* view = [[UIView alloc] initWithFrame: CGRectMake(0.0f, 0.0f, 640.0f, 0.0f)];
return view;
}
return nil;
}
- (NSString*) tableView:(UITableView *) tableView titleForHeaderInSection:(NSInteger)section
{
if (section == 0) {
return nil;
} else {
// return some string here ...
}
}
Se restituisco un'altezza di 0, gli altri due metodi non verranno mai chiamati con l'indice di sezione 0. Tuttavia, un'intestazione di sezione vuota viene ancora disegnata con l'altezza predefinita. (In iOS 6, vengono chiamati i due metodi. Tuttavia, il risultato visibile è lo stesso.)
Se restituisco un valore diverso, l'intestazione della sezione ottiene l'altezza specificata.
Se restituisco 0,01, è quasi corretto. Tuttavia, quando attivo "Colore immagini disallineate" nel simulatore, contrassegna tutte le celle della vista tabella (che sembra essere una conseguenza logica).
Le risposte alla domanda UITableView: nascondi intestazione dalla sezione vuota sembrano indicare che alcune persone sono riuscite a nascondere l'intestazione della sezione. Ma potrebbe applicarsi allo stile semplice (invece di quello raggruppato).
Il miglior compromesso finora è restituire l'altezza 0,5, risultando in una linea leggermente più spessa sotto la barra di navigazione. Tuttavia, apprezzerei se qualcuno sapesse come nascondere completamente l'intestazione della prima sezione.
Aggiornare
Secondo l' analisi di caglar ( https://stackoverflow.com/a/19056823/413337 ), il problema sorge solo se la visualizzazione tabella è contenuta in un controller di navigazione.
section == 0
.