2011-09-08 12 views
14

tengo el siguiente problema.Obtiene la posición actual de scrollview animado

i subclases un UIScrollView cuales contentOffset está animada por este código:

[UIView animateWithDuration:1.0 
         delay:1.0 
        options:options 
       animations:^{ 
        self.contentOffset = CGPointMake(label.frame.size.width, 0); 

       } 
       completion:^(BOOL completed) { 
        //some other stuff 
       }]; 

Ahora, cuando el usuario "willBeginDragging" la ScrollView, quiero parar la animación actual y establecer el scrollview.contentoffset a la corriente posición que tiene en la uanimación.

por ejemplo, el usuario entra en la pantalla, después de 1 segundo la vista de desplazamiento comienza a desplazarse, si el usuario toca el desplazamiento después de 2 segundos y lo arrastra, el scrollview.contentoffset debe tener la posición exacta de la posición de animación actual .

si obtengo el valor de compensación de contenido en el método willbegindrag, ya es el último valor de la animación, ya que uianimation establece los valores en el estado final y luego los anima.

¿cómo obtengo la posición actual del desplazamiento de contenido de la animación en ejecución?

NSLog(@"pos of content x %f, y %f", [[self.layer presentationLayer] frame].origin.x, [[self.layer presentationLayer] frame].origin.y); 

`ve leer sobre la capa de presentación, pero la vista en sí misma no está animado, necesito el scrollview.contentoffset.

mhh, ¿Alguna idea? THX

ya resuelto:

El self.layer capa de presentación es absolutamente correcto.

pero tenía que usar los límites y no el marco ....

Lo sentimos, ahora usted y yo lo sé: P

Así que el código es correcto:

CGPoint pos = [[self.layer presentationLayer] bounds].origin; 

para obtener la posición actual de una vista de desplazamiento animada mientras se anima.

Respuesta

8

que pueda obtener el contenido de desplazamiento, mientras que el ScrollView se desplaza mediante el siguiente código ...

-(void)scrollViewDidScroll:(UIScrollView *)scrollView 
{ 

NSLog(@"%f", scrollView.contentOffset.x); 

} 
+0

Muchas gracias – SampathKumar

+0

todas las devoluciones 0.000, –

+1

Esta respuesta es fuera de tema. La pregunta es acerca de obtener contentOffset mid-animation. Esta solución obtiene contenido Desactivar cada llamada de desplazamiento. – rizzes

Cuestiones relacionadas