Personalizzato UITableViewCell cambiando indexPath durante lo scorrimento?
-
30-09-2019 - |
Domanda
Ho un personalizzato UITableViewCell, che ho creato in Interface Builder. Sto accodamento con successo le cellule, ma come ho scorrere, le cellule sembrano cominciare chiamare diverse indexPaths. In questo esempio, sto dando da mangiare l'indexPath.section corrente e indexPath.row nella customCellLabel. Come ho scorrere la tabella su e giù, alcune delle cellule cambierà. I numeri possono essere dappertutto, ma le cellule non sono saltare intorno visivamente.
Se io commento del se (== nil cellulare), quindi il problema va via.
Se io uso una cellula normale, il problema va via.
idee perché questo potrebbe accadere?
// Customize the appearance of table view cells.
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
UITableViewCell *cell = (UITableViewCell *)[tableView dequeueReusableCellWithIdentifier:@"CalendarEventCell"];
if (cell == nil) {
NSLog(@"Creating New Cell !!!!!");
NSArray *nib = [[NSBundle mainBundle] loadNibNamed:@"CalendarEventCell" owner:self options:nil];
cell = (UITableViewCell *)[nib objectAtIndex:0];
cell.accessoryType = UITableViewCellAccessoryDisclosureIndicator;
}
// Set up the cell...
[customCellLabel setText:[NSString stringWithFormat:@"%d - %d",indexPath.section, indexPath.row]];
return cell;
}
Soluzione
Quando si crea una cella in se (nil cellulare ==) condizione, stai assegnando un reuseIdentifier alla cella come "CalendarEventCell"? Posso vedere il tuo nome pennino è CalendarEventCell, ma credo che si sarebbe anche necessario impostare
cell.reuseIdentifier = @"CalendarEventCell";
Se no, allora non sono sicuro se può Deque le cellule corrette. Inoltre, non so cosa customCellLabel riferisce.