2011-07-06 3 views
0

J'ai une application que je développe actuellement pour iOS qui souffre de quelques problèmes de performance. L'application prend l'entrée de l'utilisateur à travers un contrôleur de navigation avec 5 vues, la dernière vue génère une vue avec un UIScrollView qui a un effet de pagination. Chaque page de cet UIScrollView a 16 boutons disposés dans une grille, chacun de ces boutons est chargé avec une image. Malheureusement, lorsque je fais défiler une nouvelle page dans l'UIScrollView, l'application trébuche dans une animation saccadée plutôt que lisse.UIScrollView pager lente animation

Je me demandais si quelqu'un avait des suggestions sur la façon d'améliorer les performances de l'effet UIScrollView de pagination.

Merci beaucoup.

+0

définir la propriété scrollView.decelerationRate – Shantanu

Répondre

0

Est-il plus fluide la deuxième fois que vous accédez à cette vue?

Si c'est le cas, c'est probablement le chargement des images qui prend le temps. Vous pouvez résoudre ce problème en préchargeant vos images de boutons lorsque l'application se charge d'abord en utilisant [UIImage imageNames: ...] dans votre délégué d'application. De cette façon, ils seront déjà mis en cache et disponibles pour le rendu lorsque la vue est affichée.

Si ce n'est pas plus rapide la deuxième fois, c'est probablement le rendu réel des vues qui est trop lent. Vous pouvez corriger cela en préchargeant les vues elles-mêmes. Si vous stockez une référence aux sous-vues de votre scrollview dans un tableau, vous pouvez précharger ces vues dans votre délégué d'application et les conserver en mémoire, prêtes à être affichées chaque fois que la vue défilante est affichée. Je doute que ces vues utilisent trop de mémoire (probablement quelques Mo, max), mais si cela vous inquiète, ajoutez simplement un gestionnaire d'avertissement de mémoire qui vide la matrice puis la recréer La prochaine fois c'est nécessaire.

Questions connexes