2010-12-10 2 views
0

Je travaille sur une application qui a un pagination UIScrollView qui contient trois scrollViews comme sous-vues qui affichent des images que vous pouvez pincer et zoomer. Le code provient de l'exemple de code "PhotoScroller" d'Apple, mais j'ai supprimé la fonctionnalité de pavage parce que j'essaie d'abord de maîtriser les bases.Comment le délégué UIScrollView est-il informé de mon UIScrollView ivar?

Je peux zoomer sur mes différentes images et les parcourir, ce qui est génial. Lorsque je laisse une image qui a été agrandie pour aller à la "page" suivante de pagingScrollView, je veux qu'elle soit restaurée à sa taille de zoom d'origine, maintenant elle reste au niveau de zoom que je l'ai laissé.

J'imagine que j'ai besoin d'écrire du code qui indique au UIScrollView zoomé de revenir à l'échelle de zoom appropriée quand j'arrive à la page suivante. Ma question est comment je fais ça?

Jusqu'à présent, je travaille avec la méthode délégué de UIScrollView « scrollViewDidScroll » et et la propriété « contentOffset ». Une autre pensée est en quelque sorte d'obtenir une notification que le pagingScrollView a déplacé à la prochaine "page".

Des idées?

Répondre

1

Si vous souhaitez savoir quand la vue de défilement s'est arrêtée (par exemple si l'utilisateur a lâché et que la vue de défilement s'est positionnée sur une nouvelle page), vous pouvez utiliser scrollViewDidEndDecelerating:. Cependant, l'utilisateur peut faire défiler plusieurs pages avant d'autoriser le défilement à s'arrêter complètement, de sorte que la dernière page sur laquelle l'utilisateur s'est arrêté ne soit pas la page immédiatement précédente ou suivante. Vous pouvez conserver un pointeur sur la page en cours et chaque fois que l'utilisateur s'arrête sur une page, restaurer la page en cours au niveau de zoom par défaut avant de mettre à jour le pointeur de la page en cours.

+0

Cool, c'est logique. Merci! – Aaronium112