El tipo de efectos que se describen como la simulación de un rey de la gravedad/inercia puede ser producido por medio de la facilidad de salida (inicio rápido, extremo lenta) y facilidad de (comienzo lento, extremo rápido) funciones de tiempo
El soporte para facilitar y facilitar el acceso está disponible en iOS, así que no creo que necesite ninguna biblioteca externa ni trabajo (aunque, como se puede imaginar, su efecto necesitará una gran cantidad de ajustes).
Esto animará la traducción de un objeto a una posición dada con un efecto facilidad de salida:
[UIView animateWithDuration:2.0 delay:0
options:UIViewAnimationOptionCurveEaseOut
animations:^ {
self.image.center = finalPosition;
}
completion:NULL];
}
Si usted maneja su gesto a través de un UIPanGestureRecognizer
, el reconocedor gesto le proporcionará dos informaciones importantes para calcule la posición final: velocity
y translation
, que representan respectivamente la rapidez y la cantidad de movimiento del objeto.
Puede instalar un reconocedor gesto bandeja en su opinión (esto sería el objeto que desea animar, supongo) así:
UIPanGestureRecognizer* panGestureRecognizer = [[UIPanGestureRecognizer alloc] initWithTarget:self action:@selector(handlePanFrom:)];
[yourView addGestureRecognizer:panGestureRecognizer];
[panGestureRecognizer release];
Y luego manejar la animación en el controlador:
- (void)handlePanFrom:(UIPanGestureRecognizer*)recognizer {
CGPoint translation = [recognizer translationInView:recognizer.view];
CGPoint velocity = [recognizer velocityInView:recognizer.view];
if (recognizer.state == UIGestureRecognizerStateBegan) {
} else if (recognizer.state == UIGestureRecognizerStateChanged) {
<track the movement>
} else if (recognizer.state == UIGestureRecognizerStateEnded) {
<animate to final position>
}
}
¿Qué debo hacer si necesito detener la animación cuando quiero volver a panoramizar antes de que termine la animación? La animación siempre se ejecuta hasta que se complete. – Howard
intente googlear "animaciones interrumpibles" o publique una nueva pregunta (y haga ping en los comentarios aquí si lo desea). – sergio
Descubrí que limpiar la animación antes de que termine hace mi trabajo. Gracias. – Howard