Per impostare un UITableViewCell personalizzato utilizzando un XIB, devi fare diverse cose:
- Impostare un IBOutlet nell'intestazione
- Configurare la cella di visualizzazione della tabella in Interface Builder
- Caricare la XIB all'interno di
tableView:cellForRowAtIndexPath:
- configurarlo come qualsiasi altra cellula
Quindi ... Facciamo istituito un IBOutlet nel file di intestazione.
@property (nonatomic, retain) IBOutlet UITableViewCell *dvarTorahCell;
Non dimenticare di sintetizzarlo all'interno del file di implementazione.
@synthesize dvarTorahCell;
Ora, creiamo e configuriamo la cella. Si vuole prestare attenzione alla identificatore di cella e l'IBOutlet come illustrato di seguito:
Ora nel codice, si carica il XIB nella vostra cella come illustrato di seguito:
Si noti che l'identificatore di cella in Interface Builder corrisponde a quello mostrato nel codice sottostante.
Poi vai avanti e configura la tua cella come una qualsiasi.
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:cellIdentifier];
if (cell == nil) {
[[NSBundle mainBundle] loadNibNamed:@"YUOnlineCell" owner:self options:nil];
cell = dvarTorahCell;
dvarTorahCell = nil;
}
//configure your cell here.
Basta notare che quando si accede subviews, quali etichette, è ora necessario fare riferimento a loro per tag, invece che da nomi di proprietà, come ad esempio textLabel
e detailTextLabel
.
Non lo sapevo. – Moshe
Era una nuova API introdotta con iOS5 - l'ho usata dal giorno in cui l'ho vista - rende la vita così semplice! Puoi anche diventare più avanzato con la sottoclasse di UITableViewCell e aggiungendo le proprietà di IBOutlet che puntano ai vari controlli nella cella, così non avrai più bisogno di usare ViewWithTag! –
Assolutamente fantastico! – Moshe