T#015 – Celle personalizzate per le nostre Table
La Table View è uno degli elementi più utilizzati in iPhone OS. Basti soltanto pensare a due applicazioni di primaria importanza Mail e Contatti che entrambi utilizzano questo potente strumento.
In taluni casi però si ha la necessità di personalizzare le celle della nostra tabella.
Vedremo quindi oggi come personalizzare l’aspetto delle celle della nostra tabella (partiamo quindi dal presupposto che abbiate già una tabella pronta e funzionante con i vostri elementi caricati).
Apriamo il nostro Xcode e creiamo un nuovo NIB (File -> New File -> User Interface -> Empty Xib) denominato CustomCell.
Apriamo il nostro file .xib e dalla libreria scegliamo il componente Table View Cell.

Inseriremo quindi all’interno di questa cella gli elementi che ci occorrono (nel nostro esempio inseriremo due Text Label ma è possibile inserire qualsiasi elemento come immagini, label, testo e così via).
Selezioniamo ora il File’s Owner del nostro Xib e dal menu accediamo all’Identity Ispector
Inseriamo il nome della nostra classe ( quella dove abbiamo creato l’IBOutlet per intenderci ).
Accediamo ora al Connection Inspector e nel Referencing Outlets colleghiamo cella personalizzata alla nostra Table View Cell.


Una volta completata questa parte chiudiamo il file Xib.
Ritorniamo quindi al codice originario della nostra tabella ed in particolare al file .h
Dichiariamo un elemento UITableViewCell e denominiamolo *cellapersonalizzata
IBOutlet UITableViewCell *cellapersonalizzata;
Accediamo al .m della nostra classe e sostituiamo nel metodo cellForRowAtIndexPath il seguente codice:
if (cell == nil){ [[NSBundle mainBundle] loadNibNamed:@"CustomCell" owner:self options:NULL]; cell=cellapersonalizzata; }
In ultima analisi sarà necessario assegnare il valore delle nostre stringhe alle due nuove Label create nello XIB personalizzo.
Accediamo allora al file XIB della nostra cella personalizzata.
Selezioniamo la label e nel Attribute Inspector al campo Tag inseriamo rispettivamente 1 e 2 (per la prima e seconda label).

Ritorniamo al .m della nostra tabella ed inseriamo il seguente codice:
UILabel *titleLabel = (UILabel *)[cell viewWithTag:1]; titleLabel.text = [lista objectAtIndex:indexPath.row]; UILabel *subtitleLabel = (UILabel *)[cell viewWithTag:2]; subtitleLabel.text = [sottotitolo objectAtIndex:indexPath.row];
Il gioco è fatto
Alla prossima

| Stampa l'articolo | Questo articolo è stato pubblicato da Luigi Marino il 7 dicembre 2009 alle 11:34, ed è archiviato come Tutorial Pratici. Puoi seguire i commenti a questo post attraverso RSS 2.0. Puoi pubblicare un commento o segnalare un trackback dal tuo sito. |























circa 7 mesi fa
Ciao,
questo è proprio il tutorial che stavo cercando! Potresti per caso dirmi come si può settare il titolo di una cella in base a ciò che viene scritto in un textfield di un’altra xib?
Complicato vero?
Spero in una vostra risposta! Grazie…
Matthew
circa 7 mesi fa
per favore inserisci le immagini
circa 7 mesi fa
Dove fai l’init della cella ?
Io normalmente uso initWithStyle:reuseIdentifier per allocare la cella.
Se sostituisco in cellForRowAtIndexPath il tuo codice la cella non mi viene inizializzata.
Scusa, sicuramente sbaglio qualcosa, ma sono alle prime armi …
circa 7 mesi fa
Quanto prima le uppo
circa 7 mesi fa
Ho risolto. L’errore era nell’xib, ho assegnato la classe al File’s Owner e nel Referencing Outlets della cella ho collegato la “cellapersonalizzata”.
circa 7 mesi fa
Mi hai preceduto…proprio stamattina creando le immagini mi sono accorto della mancanza….scusate e correggo subito
circa 2 mesi fa
Ciao, come posso fare se volessi modificare il contenuto di una delle label quando la cella viene selezionata?
Grazie, ciao.