J'ai assez cherché sur Google, et j'ai vérifié des posts comme ceux-ci ( Trouver la direction du défilement dans une UIScrollView? ) sur stackoverflow avant de poster ceci. J'ai un nombre dynamique de photos dans une application iPhone, que j'affiche à travers UIScrollView
. À tout moment, seules 3 photos sont affichées dans la vue défilante. Lorsque j'ai, disons, 4 photos, en tout : 1ère photo : affichée à la position 0.0 2ème photo : affichée à la position 320.0 3ème photo : affichée à la position 640.0
Maintenant, lorsque l'utilisateur fait défiler jusqu'à la 4ème photo, la vue défilante se réinitialise à la position 0.0. Si l'utilisateur essaie de faire défiler 'au-delà' de la 4ème photo, le défilement devrait s'arrêter dans la seule direction vers la droite (afin que l'utilisateur ne puisse pas dépasser). Mais actuellement, l'utilisateur 'peut' faire défiler au-delà de la dernière photo ; cependant, je détecte cela de manière programmatique & réinitialise la position. Mais cela ne semble pas propre, car l'utilisateur voit brièvement l'arrière-plan noir. Je veux détecter que l'utilisateur a commencé à faire défiler vers la 'droite' (rappelez-vous, faire défiler vers la 'gauche' c'est-à-dire vers la 'photo précédente' est autorisé) dans scrollViewWillBeginDragging
, afin que je puisse arrêter tout autre défilement vers la droite.
Ce que j'ai essayé:
- Essayer d'utiliser
self.scrollView.panGestureRecognizer
'stranslationInView
ne fonctionne pas, car il n'y a pas de instance depanGestureRecognizer
retournée en premier lieu (!), bien que l'API UIScrollView le prétende. - Détecter cela dans
scrollViewDidEndDecelerating
est possible, bien que cela ne servira pas mon objectif.