La Détection De Position UIScrollView
Je suis en train d'utiliser un UIScrollView comme un appareil de navigation dans mon application iOS. Fondamentalement, je veux de l'application à charger le contenu spécifique, basé sur la position de la pagination-activé UIScrollView. C'est un peu comme une molette de navigation.
Actuellement, j'ai deux pages (2*320) scrollview, et je suis en utilisant le scrollViewDidEndDragging
délégué méthode et contentoffset.x
pour charger le contenu approprié. J'essaie de déterminer la position de la scrollview en tant que tel:
if (scrollView.contentOffset.x < 320) {
//Load content 1
}
else if (scrollView.contentOffset.x >= 320) {
//Load content 2
}
Mon problème est que je ne soit pas à comprendre comment travailler avec contentoffset ou il n'est pas adapté pour faire face à mon problème. De toute façon, je suis coincé. Quelqu'un peut-il me faire savoir où je suis allé mal et/ou me montrer un moyen plus efficace pour déterminer le scrollview position?
Je suis stupide, j'ai oublié de mentionner ce qui est le problème... en fait, je ne peux pas suivre la position de la scrollview. Quand je passe à la deuxième page, il n'enregistre les modifications, si je vais sur le 620 (limite de rebondir vers la droite). Mais lorsque je retourne à la position de départ (page 1), il n'enregistrez les modifications. En d'autres termes, mon suivi n'est pas exacte.
Délégué et tout le reste fonctionne bien, je me connecte!
OriginalL'auteur Gergely Kovacs | 2012-12-23
Vous devez vous connecter pour publier un commentaire.
C'est difficile à dire parce que vous n'avez jamais mentionné précisément quel est le problème, mais je vais prendre un couple de suppositions.
Si le délégué de la méthode n'est pas d'être appelé à tout ce que vous devez n'oubliez pas de régler le défilement des vues délégué:
[myScrollView setDelegate:self];
Sinon, le problème avec l'aide de
scrollViewDidEndDragging
pour détecter le défilement des vues de décalage, c'est qu'il va vérifier le décalage au point où vous arrêtez de glisser ce qui pourrait être à l'intérieur de la destination pages rect, ou dans le démarrage de pages rect. Comme une alternative, je vous suggérons d'utiliserscrollViewDidEndDecelerating
de vérifier le contenu de compenser comme il sera appelé dès que le défilement de l'affichage s'arrête à sa page de destination.OriginalL'auteur Mick MacCallum
Je pense que cela pourrait vous aider :). Avec
scrollViewDidScroll
vous obtenez toujours la position exacte de votre scrollView:NSLog(@"Position: %g", scrollView.contentOffset.x);
Ne pas oublier le délégué
UIScrollViewDelegate
dans votre .h fichier.OriginalL'auteur filou
Ici une solution pour obtenir la position actuelle (page) comme Valeur entière:
Utilisation scrollViewDidEndDecelerating: methode:
OriginalL'auteur auerd
À L'Aide De UIScrollViewDelegate,
OriginalL'auteur A.G