2011-05-22 8 views
6

Estoy usando touchesBegan y touchesMoved para rastrear la interacción de un usuario, por lo que puedo ver dónde ha tocado el usuario la pantalla. Lo que quiero hacer es cuando llevan su dedo a los últimos 20 píxeles de la pantalla, tienen el UIScrollView scroll1 para desplazarse hacia abajo. ¿Pero cómo defino una velocidad? Seguramente una declaración de tiempo lo haría demasiado rápido, y una animación de UIView lo movería a un cierto lugar, pero solo una vez.¿Cómo hago un scroll UIScrollView automáticamente a cierta velocidad?

Respuesta

19

Usted puede hacer esto mediante el siguiente código:

[UIScrollView beginAnimations:@"scrollAnimation" context:nil]; 

[UIScrollView setAnimationDuration:REQUIRED_ANIMATION_DURATION]; 

[scroll setContentOffset:CGPointMake(REQUIRED_DISTANCE_X, REQUIRED_DISTANCE_Y)]; 

[UIScrollView commitAnimations]; 

acaba de establecer los valores de REQUIRED_ANIMATION_DURATION a cualquier intervalo de tiempo que desee. Un intervalo de tiempo más pequeño significará una velocidad más rápida.

+0

Sé que un método similar de animación había dejado de utilizarse en 3.0 y fue reemplazado por [Animación UIView ..]. ¿Esto cuenta como el tipo original o sigue siendo un método recomendado? – Andrew

+0

Este es el mismo método original. UIScrollView hereda de UIView para que se puedan poner los mismos métodos de animación. Puede reemplazar UIScrollView con UIView en el código publicado. El resultado será el mismo. –

Cuestiones relacionadas