Sto migrando dalla personalizzazione di TableViewCells in tableView:cellForRow:atIndexPath:
all'utilizzo di una sottoclasse personalizzata UITableViewCell
. Ecco come ho fatto:registerNib: forReuseidentifier con UTTableViewCell e Storyboard personalizzati
In primo luogo, creato XIB vuoto, trascinato UITableViewCell
lì e mettere un UILabel
in cima. Creata una classe (sottoclasse di UITableViewCell
) e nell'editor delle proprietà di Interface Builder imposta la classe su MyCell
. Poi, nel mio TableViewController, inserire il seguente:
- (void)viewDidLoad
{
[super viewDidLoad];
// load custom cell
UINib *cellNIB = [UINib nibWithNibName:@"MyCell" bundle:nil];
if (cellNIB)
{
[self.tableView registerNib:cellNIB forCellReuseIdentifier:@"MyCell"];
} else NSLog(@"failed to load nib");
}
Dopo di che ho spazzato via tutto il codice personalizzato da tableView:cellForRow:atIndexPath:
e sinistra solo linee predefinite:
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
static NSString *CellIdentifier = @"MyCell";
MyCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
return cell;
}
Quando ho eseguito questo, mi aspettavo di vedere un gruppo di celle con una singola etichetta in ogni cella (la stessa etichetta che ho lasciato cadere nel mezzo durante la creazione di XIB). Invece vedo solo celle vuote bianche e aggiungere/rimuovere i componenti al layout XIB non aiuta.
Trascorro un GIORNO cercando diverse opzioni come l'impostazione di riutilizzareIdentificatore in Interface Builder per XIB di celle personalizzate e caricamento della vista in tableView:cellForRow:atIndexPath:
, ma nessuna ha aiutato.