Je pense d'abord qu'au lieu de remplir le dictionnaire NSDictionary pendant le défilement, il suffit de le remplir pendant le défilement. viewDidLoad
Je fais quelque chose de similaire en plaçant toutes mes données dans un fichier NSDictionary
et l'utiliser ensuite pour initialiser/mettre à jour l'interface utilisateur sur les cellules pendant le défilement des cellules réutilisables.
De plus, en plaçant vos données dans un tableau quelconque, vous pouvez également les mettre en correspondance avec les cellules. Souvenez-vous simplement que les tableaux commencent à 0, donc position in table = indexOfYourArray + 1
Exemple simple de chargement d'un tableau stocké dans un plist dans un NSArray dans viewDidLoad
// Load the data
NSString *pathToFile = [[NSBundle mainBundle] pathForResource:someArrayNameString ofType:@"plist"];
self.someArrayYouCreated = [NSArray arrayWithContentsOfFile:pathToFile];
Maintenant que vous venez de déverser tout un tas de données dans ce tableau, vous pouvez l'alimenter pendant le défilement dans la fonction cellForRowAtIndexPath
NSDictionary *dataItem = [someArrayYouCreated objectAtIndex:indexPath.row];
UILabel *label;
label = (UILabel *)[cell viewWithTag:1];
label.textColor = [UIColor colorWithRed:(58/255.f) green:(58/255.f) blue:(58/255.f) alpha:1.0];
label.text = [dataItem objectForKey:@"PersonName"];
Dans cet exemple, vous ne faites que remplir les cellules à partir d'un tableau que vous avez créé à l'aide de la fonction viewDidLoad
et donc toutes vos données sont prêtes à être utilisées presque immédiatement. Si vous avez une tonne de données, vous pouvez également afficher un cercle de progression pour attendre une seconde que le tableau ait fini de se charger.
Encore une fois, je ne comprends pas très bien comment vous stockez vos données (puisque vous n'avez rien dit à ce sujet) et je ne peux donc que supposer que cela fonctionnera pour vous. Jusqu'à ce que vous fournissiez plus de détails, c'est le mieux que je puisse faire.