Ho fatto abbastanza google, & Ho controllato post come questi (Finding the direction of scrolling in a UIScrollView?) in stackoverflow prima di pubblicarlo. Ho un numero dinamico di foto in un'app per iPhone, che viene visualizzata tramite UIScrollView
. In qualsiasi momento, sono visualizzate solo 3 foto nella vista a scorrimento. Quando ho, diciamo 4 fotografie, in totale: prima foto: visualizzate all'offset 0.0 seconda foto: visualizzate all'offset 320,0 3 ° foto: visualizzate all'offset 640,0Rileva la direzione di UIScrollView scorri in scrollViewWillBeginDragging
Ora, quando l'utente scorre al 4 foto, la vista a scorrimento viene reimpostata su 0.0 offset. Se l'utente tenta di scorrere "oltre" la quarta foto, lo scorrimento dovrebbe fermarsi solo nella direzione destra (in modo che l'utente non scorra "oltre"). Ma attualmente, l'utente 'è in grado' di scorrere oltre l'ultima foto; tuttavia, rilevo questo programmaticamente & ripristinando l'offset. Ma non sembra accurato, poiché l'utente vede momentaneamente lo sfondo nero. Voglio rilevare che l'utente ha iniziato a scorrere 'a destra' (ricordare, scorrere 'a sinistra', cioè alla foto 'precedente' è okay) in scrollViewWillBeginDragging
, in modo da poter interrompere ulteriormente lo scorrimento verso destra.
Quello che ho cercato: (!)
- Cercando utilizzando
self.scrollView.panGestureRecognizer
s'translationInView
non funziona, perché non c'èpanGestureRecognizer
istanza restituita in primo luogo, anche se l'API UIScrollView sostiene così. - Rilevare questo in
scrollViewDidEndDecelerating
è possibile, anche se non sarà al mio servizio.
Potrebbe illustrare lastContentOffset – Daniel
@Daniel è necessario salvare l'ultimo "offset di contenuto", che è il precedente contentOffset dall'ultima chiamata a questo metodo. Non so perché Jean l'abbia dimenticato. Basta aggiungere lastContentOffset come variabile statica nella parte superiore, quindi impostarlo alla fine del metodo. La traduzione –