Diciamo che hoUtilizzando dequeueReusableCellWithIdentifier per le cellule personalizzati
- (UITableViewCell*)tableView:(UITableView*) cellForRowAtIndexPath:(NSIndexPath*)indexPath
{
static NSString *cellID = @"Cell Identifier";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:cellID];
if (!cell)
{
cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:cellID];
cell.selectionStyle = UITableViewCellSelectionStyleNone;
}
else
{
return cell;
}
UILabel * nameLabel = [[UILabel alloc] initWithFrame: CGRectMake(0, 15, box.size.width, 19.0f)];
nameLabel.text = name;
[nameLabel setTextColor: [UIColor colorWithRed: 79.0f/255.0f green:79.0f/255.0f blue:79.0f/255.0f alpha:1.0f]];
[nameLabel setFont: [UIFont fontWithName: @"HelveticaNeue-Bold" size: 18.0f]];
[nameLabel setBackgroundColor: [UIColor clearColor]];
nameLabel.textAlignment = NSTextAlignmentCenter;
[cell addSubview: nameLabel];
}
Cos'è che sta per fare?
Se la cella non è nulla, e diciamo che sei alla riga 5, restituirà la cella per la riga 5 con le etichette di testo esatte, ecc.?
Fondamentalmente, la mia domanda è, se si dispone di celle personalizzate con etichette, immagini, ecc. Come si usa cellForRowAtIndexPath
con dequeueReusableCellWithIdentifier
?
è lo stesso per tableviewcell se è personalizzato o no. Si ottiene l'oggetto cella e si ripristinano tutti i suoi stati e quindi si aggiunge il contenuto. Quindi sì, dovrai pulire i contenuti nelle etichette/immagini (impostandolo su zero) e fornire nuovi contenuti. – rydgaze
In questo codice, non è possibile accedere nuovamente all'oggetto UILabel tranne che enumerando le sottoview della cella che è piuttosto brutta. Meglio usare una sottoclasse di UITableViewCell che ha una proprietà UILabel quindi è facilmente accessibile –