J'ai un Uiscrollview qui contient de grandes images et utilise une pagination pour faire défiler les images. Afin de sauvegarder la mémoire, je ne charge qu'une seule image avant et après la visibilité actuellement visible et chargée / libérant de nouvelles images après un défilement terminé. P>
Le problème se produit lorsque l'on fait défiler rapidement et Comment puis-je détecter le défilement continu? p>
Je pourrais vérifier l'emplacement de l'élément sur chaque ScrollViewDidendDecelerating code> n'est pas appelé. p>
ScrollViefDidscroll code> mais cela semble un peu lourd ... p>
7 Réponses :
Ma solution temporaire consiste à annuler le défilement continu en désactivant le défilement du moment où l'utilisateur soumet le doigt jusqu'à ce que le défilement soit terminé.
-(void) scrollViewWillBeginDecelerating:(UIScrollView *)scrollView { [scrollView setScrollEnabled:NO]; } - (void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView { [scrollView setScrollEnabled:YES]; }
Vous pouvez faire quelque chose comme ceci Cette méthode est appelée à tout moment, le contentoffset a changé s'il est modifié par programme ou non. p> à partir de cette méthode, vous pouvez vérifier si " Page 'est identique à votre page actuelle, sinon, vous savez que vous devez charger quelque chose. L'astuce ici consiste à faire de la charge d'images sans tenir le défilement de la visionneuse de défilement. C'est là que je suis coincé. P> Le calcul de la page passera à la prochaine / précédente lorsque vous êtes à mi-chemin de la page suivante P> P>
Si vous recherchez toujours une solution ... Ce que je fais, cela fonctionne vraiment bien avoir une bonne performance, aussi.
Même j'ai le même problème que jean a eu. J'ai essayé la méthode ScrollViewDidenDengging: WillDecélectionnez: Mais, chaque fois que ScrollViewDidendDecelerating n'est pas appelé, ScrollViewDidenDengging: WillDecelerérer: également ne sera pas appelé. Comment résoudre ce problème?
Peut-être une vue sur la table avec le contenu cellulaire personnalisé fonctionnerait mieux pour vous, car elle a beaucoup de logique intégrée pour seulement charger des cellules visibles par opposition à tout à la fois. Il y a beaucoup de tutoriels pour la gestion des vues de table de différentes manières. P>
Vous devez vérifier à la fois ScrollViewDidenddecelerating et ScrollViewDidscroll. Quand l'utilisateur passe-t-il et la libère de faire défiler le "moment de l'élan", le premier sera appelé à la et. Si l'utilisateur décide d'arrêter le défilement avec son doigt en appuyant sur la TableView (ou faites défiler le plus bas, mais je ne suis pas sûr de cela) Le deuxième événement est viré. P>
Selon mon expérience, @ JD291 est correct; J'utilise les rappels suivants avec succès pour la plupart des endroits mais, le seul cas lorsqu'un rappel code> n'est pas appelé, c'est que vous n'ayez peut-être pas configuré le délégué code> correctement. p> p>
Le WWDC 2010 en a parlé. Ils effectuent une réutilisation des Sub Scrollviews, Alloc La vue d'image manquante dans ScrollViewDidscroll: strong>. La vidéo peut aider: p>
Session 104 - Conception d'applications avec Vues de défilement P >
La solution de mise en œuvre de la mise en œuvre du code associé de ScrollViewDidDendDenddragging: WillDecelerer travaille-t-il pour vous?