/ / Problème avec le lancement de UITableViewCells basé sur indexPath.row - iphone, objective-c, cacao, cocoa-touch

Problème lors du lancement de UITableViewCells basé sur indexPath.row - iphone, objective-c, cacao, cacao-touch

J'ai la méthode suivante qui devrait remplirles cellules de mon UITableView avec les données d'un tableau. Je veux obtenir les données du tableau en utilisant la ligne dans laquelle les données sont chargées comme index.

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {


cellComments=(FullCommentCell *)[tableView dequeueReusableCellWithIdentifier:FullCommentCell_ID];
if(cellComments==nil)
{
[[NSBundle mainBundle]loadNibNamed:@"FullCommentCell" owner:self options:nil];
NSLog([NSString stringWithFormat:@"%i",indexPath.row]);
[cellComments loadFullComments:[latestFMLComments objectAtIndex:indexPath.row]];
}
//cellComments.userInteractionEnabled=NO;
return cellComments;

}

Cela ne fonctionne pas comme prévu. La table finit seulement par être remplie avec les trois premiers éléments de mon tableau, puis ces données sont réutilisées jusqu'à la fin de ma table. La table doit utiliser toutes les données de mon tableau. Une idée pourquoi cela ne fonctionne pas comme prévu?

Réponses:

3 pour la réponse № 1

Vous devez définir les données de cellule correctes à chaque foisvous renvoyez une cellule, qu'elle soit nouvelle ou réutilisée. Lorsque vous faites défiler vers le bas, les cellules du haut du tableau sont supprimées et réutilisées pour le bas du tableau. C'est pourquoi vous voyez les premiers éléments de données répétés .

- (UITableViewCell *)tableView:(UITableView *)tableView
cellForRowAtIndexPath:(NSIndexPath *)indexPath {

cellComments = (FullCommentCell *)[tableView dequeueReusableCellWithIdentifier:FullCommentCell_ID];
if (cellComments == nil) {
[[NSBundle mainBundle]loadNibNamed:@"FullCommentCell" owner:self options:nil];

// Do any one-time setup here, like adding subviews
}

// Set cell data for both new and reused cells here

[cellComments loadFullComments:[latestFMLComments objectAtIndex:indexPath.row]];
//cellComments.userInteractionEnabled=NO;

return cellComments;
}

0 pour la réponse № 2

Lorsque vous récupérez les commentaires de la celluledequeueReusableCellWithIdentifier, vous devez à nouveau appeler loadFullCommnents - les cellules sont réutilisées de sorte que vous n'en aurez créé que le nombre affiché à l'écran.