J'ai un uitableview qui charge des images assez grandes dans chaque cellule et les hauteurs de cellule varient en fonction de la taille de l'image. Les performances de défilement sont correctes, mais peuvent parfois être saccadées.
J'ai trouvé ces conseils que j'ai trouvés sur le blog FieryRobot:
défilement vitreux avec vue modifiable
défilement plus vitreux avec vue modifiable
Quelqu'un at-il des conseils pour améliorer les performances de défilement uitableview?
Réponses:
UITableViewCell
« sdrawRect:
si possible , éviter subviews à tout prix (ou si vous avez besoin de la fonctionnalité d'accessibilité standard, la vue de contenudrawRect:
)UITableViewCell
calque de votre opaque (il en va de même pour la vue de contenu si vous en avez une)UITableView
exemples / documentationUIImage
sla source
UITableViewCell
, n'utilisez pas de Nib, écrivez-la plutôt dans le code. C'est beaucoup plus rapide que de charger des fichiers Nib.la source
Le développeur derrière Tweetie a beaucoup écrit à ce sujet et a du code qui montre comment cela a été fait pour cette application. Fondamentalement, il / elle préconise une vue personnalisée par cellule du tableau, et la dessiner manuellement (plutôt que la sous-visualisation avec Interface Builder, entre autres options).
défilement rapide dans tweetie avec affichage modifiable
En outre, Apple a mis à jour son propre exemple de code pour TableView dans ses didacticiels TableViewSuite (peut-être en réponse à cela?)
TableViewSuite
la source
Le tueur n ° 1 des performances pour le défilement UITableView dessine des ombres sur n'importe quel calque de vue de cellule, donc si les performances de défilement sont importantes, ne faites pas d'ombres à moins que cela ne ralentisse votre thread principal.
pensait que cela devait être dit car aucune des réponses acceptées ne faisait mention d'ombres et de couches. : +)
la source
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:[tableView reloaddata]
cellForRowAtIndexPath
, incluez le code qui définira les données (texte) à partir de l'objet de modèle de données correct du tableau.Pour éviter les problèmes, reportez-vous à ce didacticiel sur le chargement différé des images dans la vue tableau.
la source