2010-11-21 11 views
18

Estoy usando UIScrollView y usando scrollRectToVisible: animado. Esto funciona bien para mí. Pero quiero desplazarme lentamente a una ubicación para que el usuario pueda notar el efecto. ¿Es posible?iphone - UIScrollview - scrollRectToVisible con animación lenta

Estoy intentando el siguiente código, pero no tuvo éxito.

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

posible duplicado de [UIScrollView scrollRectToVisible a velocidad personalizada] (http://stackoverflow.com/questions/1558262/uiscrollview-scrollrecttovisible-at-custom-speed) – tbodt

Respuesta

55

La solución es realmente bastante fácil. Si usa [scrollView scrollRectToVisible:frame animated:YES], la vista de desplazamiento iniciará su propia animación, por lo que para animar con su duración debe usar [scrollView scrollRectToVisible:frame animated:NO] dentro de su animación.

En otras palabras: Esto funcionará.

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