Abbiamo visto nel nostro tutorial numero 15 come personalizzare le celle di una tabella. Ma se volessimo personalizzarle in modo differente, ad esempio in base alla loro posizione? Potreste voler arrotondare gli angoli solo alla prima e all’ultima cella di ogni sezione. Oppure alcune sezioni potrebbero contenere un’unica cella, in questo caso, per mantenere una coerenza grafica, occorrerebbe arrotondare tutti gli angoli della cella. Come fare per ottenere un risultato simile?
Se questo è l’effetto che volete ottenere, queste poche righe di codice possono fare al caso vostro, il risultato è simile a quello mostrato in figura a fondo articolo:
if (cell == nil){
NSInteger sectionRows = [tableView numberOfRowsInSection:[indexPath section]];
NSInteger row = [indexPath row];
if (row == 0 && row == sectionRows - 1) {
//Unica cella della sezione (prima ed ultima)
[[NSBundle mainBundle] loadNibNamed:@"CustomCellUnica" owner:self options:NULL];
cell=cellapersonalizzata;
}
else if (row == 0) {
//Prima cella della sezione
[[NSBundle mainBundle] loadNibNamed:@"PrimaCustomCell" owner:self options:NULL];
cell=cellapersonalizzata;
}
else if (row == sectionRows - 1) {
//Ultima cella della sezione
[[NSBundle mainBundle] loadNibNamed:@"UltimaCustomCell" owner:self options:NULL];
cell=cellapersonalizzata;
}
else {
//Celle centrali della sezione
[[NSBundle mainBundle] loadNibNamed:@"CustomCellCentrali" owner:self options:NULL];
cell=cellapersonalizzata;
}
}
Nell’esempio proposto, (dentro i rispettivi if per intenderci), abbiamo usato il codice mostrato nel tutorial 15 menzionato sopra, nulla vieta, però, di usare la stessa struttura anche nel caso che si volesse personalizzare le celle completamente da codice, senza usare quindi IB. Dovremo inoltre usare la stessa struttura anche nel punto in cui andiamo a definire il contenuto dei vari campi delle celle.
Ecco un esempio di quello che potreste ottenere:
2 Responses to “TIPS#005 – Personalizziamo le UICell in base alla loro posizione”
21 Marzo 2010
lexiociao, scusate, ma avete creato un tutorial (t020-creiamo-table-view-raggruppate-e-divise-in-sezioni.html) per creare una tabella a sezioni e non avete spiegato come associale ad ogni row un .nib…..invece di spiegare come personalizzare potete creare una guida (magari subito e non fra un mese ;( ) per far questo?
Grazie!
Lex I.
21 Marzo 2010
Staff devAPPTra un mese? Subito? Possiamo fare anche di meglio 😛
Prova a dare un’occhiata a questo:
http://www.devapp.it/wordpress/t015-celle-personalizzate-per-le-nostre-table.html