2010-11-21 15 views
18

Sto utilizzando UIScrollView e utilizzo scrollRectToVisible: animato Questo funziona perfettamente per me. Ma voglio scorrere lentamente verso una posizione in modo che l'utente possa notare l'effetto. E 'possibile.iphone - UIScrollview - scrollRectToVisible con animazione lenta

Sto provando il seguente codice, ma non ci sono riuscito.

[UIView beginAnimations:nil context:NULL]; 
[UIView setAnimationBeginsFromCurrentState:YES]; 
[UIView setAnimationDuration:2.0]; 
[scrlView scrollRectToVisible:<<some cgrect>> animated:YES];    
[UIView commitAnimations];   
+0

possibile duplicato del [UIScrollView scrollRectToVisible a velocità personalizzato] (http://stackoverflow.com/questions/1558262/uiscrollview-scrollrecttovisible-at-custom-speed) – tbodt

risposta

55

La soluzione è in realtà piuttosto semplice. Se usi [scrollView scrollRectToVisible:frame animated:YES] la scrollview avvierà la propria animazione, quindi per animare con la tua durata devi usare [scrollView scrollRectToVisible:frame animated:NO] all'interno dell'animazione.

In altre parole: funzionerà.

[UIView animateWithDuration:3 
         delay:0 
        options:UIViewAnimationOptionCurveEaseInOut 
       animations:^{ [scrollView scrollRectToVisible:frame animated:NO]; } 
       completion:NULL]; 
Problemi correlati