Tout problème de UITableView
performances de défilement peut être résolu en utilisant des techniques déjà décrites dans d'autres réponses. Cependant, la lenteur des performances est souvent causée par quelque chose de intrinsèquement erroné ou répétitif.
Le fait que UITableView
réutilise les cellules et le fait que chaque cellule peut avoir besoin de sa propre image - ensemble, rend le bit de solution complexe. De la façon dont cela est résolu de manière générale, je résume ici les choses dont il faut s'occuper:
- Chargez les données dans la source de données - à partir de REST / base de données. Cette étape doit être effectuée en arrière-plan, en utilisant éventuellement dispatch_async avec la file d'attente GCD.
- Créez et initialisez des objets de modèle de données pertinents et placez-les dans un tableau
[tableView reloaddata]
- À l'intérieur
cellForRowAtIndexPath
, incluez le code qui définira les données (texte) à partir de l'objet de modèle de données correct du tableau.
- Maintenant, les images peuvent aussi être sous forme d'URL, donc cette étape peut être un peu bizarre en raison de la réutilisation des cellules effectuée par la vue tableau. Le cœur du fait est de charger à nouveau l'image à partir du cache / de l'URL du périphérique à l'aide de la file d'attente asynchrone, puis de la définir pour corriger cell.image (quelle que soit la propriété d'image de votre cellule).
Pour éviter les problèmes, reportez-vous à ce didacticiel sur le chargement différé des images dans la vue tableau.