Ho un UITableView dove in alcuni casi alcune sezioni hanno zero righe. Il mio obiettivo è che quando questo è vero, non voglio nessuno spazio sprecato nella vista tabella, dovrebbe apparire come se non ci fossero dati.UITableView non rispetta heightForHeaderInSection/heightForFooterInSection?
Il problema che sto avendo è con l'intestazione e il piè di pagina per le sezioni, che vengono visualizzati anche se non c'è nessuna riga e nonostante io sovrascrivi il metodo delegato per restituire 0.0f.
Ecco come appare: puoi vedere il ~ 20p di spazio grigio in alto lì, intestazioni e piè di pagina di circa 10p ciascuno per una sezione con 0 righe.
alt text http://www.hanchorllc.com/table_cells.png
Ecco il mio codice pseudo:
- (CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section {
if ([section hasRow]) {
return 10.0f;
} else {
return 0.0f;
}
}
- (CGFloat)tableView:(UITableView *)tableView heightForFooterInSection:(NSInteger)section {
if ([section hasRow]) {
return 10.0f;
} else {
return 0.0f;
}
}
Ho verificato che questi metodi sono chiamati e che il percorso di esecuzione corretta sta avvenendo.
Una ruga: questo controller di visualizzazione utilizza un XIB e UITableView ha i valori di intestazione di sezione e piè di pagina impostati su 10.0 (impostazione predefinita), anche se ho pensato che fosse sovrascritto dal metodo delegato, se implementato.
Questo è un targeting per app 3.0.
Cosa sto sbagliando?
Sì, sembra ragionevole. Ho preso l'abitudine di dichiarare costanti enum per i miei layout di sezione di tabella e stavo cercando di forzare questo particolare controller in quel progetto, che non funziona molto bene con un numero sconosciuto di righe nelle sezioni. Dispari che la documentazione di Apple non indica da nessuna parte (che io possa trovare) che non accetterà 0.0 come valore, specialmente dal momento che * puoi * impostare 0.0 nell'XIB (e sì, sembra davvero strano). Posso archiviare un bug doco in quanto dovrebbe almeno notare che il valore deve essere maggiore di 0.0f. applausi. – Hunter
Sembra davvero strano, anche io non l'ho visto in nessuna documentazione, quindi probabilmente vale la pena archiviarlo come un bug. – h4xxr
Questa è una buona idea, ma ho avuto problemi nell'implementarlo. Ho istruzioni switch per la sezione in un mucchio dei miei metodi tableview. Restituire un numero variabile di sezioni a seconda del contenuto dei dati rovina davvero questa mappatura e non riesco a pensare ad un modo elegante (o persino semplice) per affrontarlo. – blindjesse