2012-12-12 11 views
7

Ho bisogno di limitare il rimbalzo in un UIScrollView in modo che rimbalzi come al solito in basso ma non superi i pixel X in alto (il fondo non ha importanza).Limite di bounce per UIScrollview in iOS

C'è un modo per limitare la dimensione del rimbalzo? Penso che forse un metodo nel delegato come noi scrollViewWillScroll (anziché scrollViewDidScroll) mi consentirebbe di consumare quegli eventi di scorrimento che si muovono oltre il top + X ma non sono riuscito a trovarne uno adatto finora.

Eventuali indizi?

+0

Posso chiedere perché vuoi ridurre il rimbalzo? –

+0

Ci scusiamo per la risposta super ritardata, ma sì è possibile: Mi stavo giocando creando un effetto Parallax con una lista frontale e un'immagine di sfondo. Qualcosa di simile all'app di PAth 2.0, ma a un certo punto ho voluto che il rimbalzo vari in base alla dimensione dell'immagine posteriore, in modo che l'elenco principale non si muova mai (rimbalzi) al punto che si vede uno spazio nero tra l'immagine posteriore e la lista frontale. – HiddenDev

risposta

13

scrollViewDidScroll: è il metodo corretto per questo. Semplice regolare il contenutoOffset in là.

Questo esempio limitare il rimbalzo superiore a 20 pixel:

- (void)scrollViewDidScroll:(UIScrollView *)scrollView { 
    if (scrollView.contentOffset.y < -20) { 
     scrollView.contentOffset = CGPointMake(0, -20); 
    } 
} 

noti che c'è un po 'di un ritardo innaturale finché la visualizzazione viene fatto scorrere di nuovo a 0,0 quando la ragione per la il rimbalzo era un colpo decelerato, e non una resistenza. Ma penso che non ci sia modo di impedirlo. Fondamentalmente lo scrollView rimbalza ancora completamente ma non lo visualizza.

+0

Hai perfettamente ragione :) Forse stavo facendo qualcosa di sbagliato prima perché non sembrava bello. – HiddenDev