Sto provando a utilizzare un file XIB per più tipi di sottoclassi UITableViewCell personalizzate (stessi IBOutlet - stesso aspetto - diversi metodi e logica).Un XIB per più sottoclassi UITableViewCell
Come posso farlo?
Sto provando a utilizzare un file XIB per più tipi di sottoclassi UITableViewCell personalizzate (stessi IBOutlet - stesso aspetto - diversi metodi e logica).Un XIB per più sottoclassi UITableViewCell
Come posso farlo?
In senso stretto, il framework non impone un vincolo stretto da un xib al proprietario del file. È possibile utilizzare il seguente codice per caricare un pennino:
NSArray *nibContents = [[NSBundle mainBundle] loadNibNamed:@"EXCustomCell" owner:nil options:nil];
EXFirstCustomCell *firstCell = (EXFirstCustomCell*)[nibContents objectAtIndex:0];
firstCell.firstView = [firstCell.contentView viewWithTag:VIEW_TAG];
firstCell.button = [firstCell.contentView viewWithTag:BUTTON_TAG];
In base alla logica di business, si può lanciare il risultato di [nibContents objectAtIndex:0];
per soddisfare la vostra abitudine UITableViewCell
classe.
Modifica # 1:
Typecasting è generalmente una cattiva idea, dal momento che la firstCell
sarà ancora sorta di class UITableViewCell
. Una buona idea sarebbe quella di creare il tuo costruttore, passare il nibContents
come argomento e fare i tuoi compiti di visualizzazione lì.
Modifica # 2
ho fatto un po 'di sperimentazione e ecco come ho ottenuto questo al lavoro:
creare una vista XI ter indipendente e progettare il vostro cellulare lì. Deve essere una vista. Quello che stai facendo qui è la definizione di come sarà il contentView
.
Carica tutte le viste dallo xib. NSArray *nibContents = [[NSBundle mainBundle] loadNibNamed:@"EXCommonContentView" owner:nil options:nil];
Creare un costruttore del tuo cellulare personalizzato in questo modo:
-initWithNibContents:(NSArray*)nibContents {
self = [super init]
if(self) {
self.contentView = [nibContents objectAtIndex:0];
self.button = [self.contentView viewWithTag:BUTTON_TAG];
self.view = [self.contentView viewWithTag:VIEW_TAG];
}
}
Are u utilizzando un'unica tablview? –