J'ai un UITable avec un UITableCell personnalisé. Lorsque la table affiche la plupart des éléments sont vides, sauf pour le triangle d'affichage. Lorsque je fais défiler les cellules vers le haut et vers le bas, les cellules s'allument et s'éteignent au hasard, mais à un moment donné, la plupart sont vides.Cellules personnalisées dans UITable aléatoirement
Informations supplémentaires: 1) C'est la "bonne cellule". Quand je clique sur la divulgation, ça va au bon endroit. 2) J'ai utilisé exactement le même code dans une autre table et cela fonctionne bien. (Oui, j'ai changé toutes les variables, y compris l'identifiant de la cellule 3) J'ai désactivé la réutilisation des cellules, le problème est toujours là. 4) J'ai utilisé des ficelles dans ma cellule, le problème est toujours là 5) La cellule est créée à partir d'une plume.
Voici le code en question (version affichée ne pas utiliser les cellules de réutilisation et a du faux texte dans les variables.
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
static NSString *announcementCellIdentifier = @"AnnouncementCellIdentifier";
NSArray *nib = [[NSBundle mainBundle] loadNibNamed:@"AnnouncementCell" owner:self options:nil];
AnnouncementCell *cell = [nib objectAtIndex:0];
NSUInteger row = [indexPath row];
NSArray *keylist = [[NSArray alloc] init];
if ((tableView == self.tableView)) {
keylist = announcementsInCommunity;
} else {
keylist = filteredAnnouncementNames;
}
…
cell.announcementCreationTimeLabel.text = @"00/00/00";
cell.announcementCreatorLabel.text = @"The Creator";
cell.accessoryType = UITableViewCellAccessoryDisclosureIndicator;
cell.announcementSubjectLabel.text = @"Subject";
return cell;
}
Vous perdez de la mémoire lors de l'affectation de 'keylist'. N'invoquez pas 'alloc/init'. –
Merci d'avoir attrapé ça. Je l'ai corrigé. Je ne m'attendais pas à ce qu'il résolve le bug sous-jacent et ce n'était pas le cas. – JohnF