Im ne sais pas pourquoi, mais mon UITableView, ce qui nest pas quelque chose de fantaisie, montre la répétition des lignes quand il ne devrait pas être.Mon UITableView a dupliqué des lignes
Il semble que les lignes qui sont ajoutés lorsque l'utilisateur fait défiler (à savoir les rangées qui sont hors de l'écran pour commencer) obtiennent les données pour le mauvais index de la ligne. C'est presque comme si une nouvelle cellule était retirée de la file d'attente, elle utilisait une cellule qui était "utilisée", mais n'a pas été nettoyée correctement.
Avez-vous besoin de cellules « nettoyer » qui sont de-file d'attente afin que les nouvelles cellules n'utilisent pas les cellules qui sont déjà créés?
mon code est comme ci-dessous:
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
static NSString *CustomCellIdentifier = @"CustomCellIdentifier";
MyDayCell *cell = (MyDayCell *)[tableView
dequeueReusableCellWithIdentifier: CustomCellIdentifier];
if (cell == nil) {
NSArray *nib = [[NSBundle mainBundle] loadNibNamed:@"MyDayCell" owner:self options:nil];
for (id oneObject in nib)
if ([oneObject isKindOfClass:[MyDayCell class]])
cell = (MyDayCell *)oneObject;
}
NSUInteger section = [indexPath section];
NSUInteger row = [indexPath row];
NSArray *thisSectionItems = (NSArray*)[self.listData objectForKey: [[NSNumber alloc] initWithInt:section]];
MyDayDetails *rowData = [thisSectionItems objectAtIndex:row];
//setup my cells data here...
return cell;
}
Y at-il quelque chose de mal avec ce code?
Quelqu'un at-il vu quelque chose comme ça avant?
ok donc cela a du sens, et c'est à peu près ce que j'ai mis en œuvre, merci pour cela – Mark