Ho un UIScrollView orizzontale. Voglio fare una variazione dell'animazione "pull-to-reset", dove trascino completamente il bordo destro della dimensione del contenuto della vista di scorrimento, rilascia il mio dito e la vista di scorrimento torna a (0, 0) offset del contenuto.Annulla UIScrollView rimbalzo dopo il trascinamento
mio metodo delegato si presenta così:
- (void)scrollViewDidEndDragging:(UIScrollView *)scrollView willDecelerate:(BOOL)decelerate {
//check if it exceeds a certain critical value
if (scrollView.contentOffset.x - (scrollView.contentSize.width - IMAGE_WIDTH) > 80) {
[self doAnimatedScrollTo:CGPointMake(0, 0)];
}
}
dove doAnimatedScrollTo:
è un metodo di animazione personalizzata necessaria perché voglio controllare la durata dell'animazione.
Mentre funziona, sembra che l'animazione sia accodata. L'animazione "rimbalzo" di UIScrollView viene eseguita per prima, quindi si verifica la mia animazione.
C'è un modo per annullare l'animazione di rimbalzo, mantenere l'offset del contenuto da "snap" indietro e quindi eseguire la mia animazione?
hai provato a deselezionare la proprietà bounce sull'attributo i nspector? – jcesarmobile
@jcesar no, perché voglio la proprietà bounce esplicitamente. Non voglio che la seconda parte dell'animazione venga eseguita, ad es. il "rimbalzo". – 1actobacillus
Quindi non penso sia possibile. Se usi il rimbalzo devi usare il rimbalzo completo. Forse se crei una sottoclasse puoi cambiare l'animazione completa – jcesarmobile