Estoy tratando de realizar algún tipo de animación de una capa en mi aplicación de iPhone. No importa lo que haga, siempre obtengo los mismos resultados: una vez realizada la animación, vuelve a su posición original. Aunque configuré removedOnCompletion
como falso, no hay diferencia.¿Cómo es que mi transformación de Core Animation siempre regresa a su estado de inicio?
¿Qué me falta aquí?
¡Gracias de antemano!
EDITAR: Realmente necesito ayuda con este chico. Estoy creando animaciones con objetos CAKeyframeAnimation
y CABasicAnimation
, y luego los agrego a un CAAnimationGroup
que a su vez atiendo a la capa. La animación funciona como se predijo, excepto que siempre vuelve a su estado original. Este es el caso aunque configuré removedOnCompletion = NO;
en todos los objetos de animación y en el grupo de animación.
¡Alguna persona, por favor, apúnteme en la dirección correcta! Si usted vive en el área de Estocolmo, le compraré un café. =) Nuevo código publica a continuación:
CABasicAnimation *leveloutLeafAnimation = [CABasicAnimation animationWithKeyPath:@"transform"];
leveloutLeafAnimation.removedOnCompletion = NO;
leveloutLeafAnimation.duration = 1.0;
leveloutLeafAnimation.repeatDuration = 20;
CATransform3D transformLeafToRotation = CATransform3DMakeRotation(0.0, 0.0, 0.0, 1);
CATransform3D transformLeafFromRotation = CATransform3DMakeRotation([self _degreesToRadians:270.0], 0.0, 0.0, 1);
leveloutLeafAnimation.fromValue = [NSValue valueWithCATransform3D:transformLeafFromRotation];
leveloutLeafAnimation.toValue = [NSValue valueWithCATransform3D:transformLeafToRotation];
//Create an animation group to combine the animations.
CAAnimationGroup *theAnimationGroup = [CAAnimationGroup animation];
//The animationgroup conf.
theAnimationGroup.delegate = self;
theAnimationGroup.duration = animationDuration;
theAnimationGroup.removedOnCompletion = NO;
theAnimationGroup.timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionLinear];
theAnimationGroup.animations = [NSArray arrayWithObjects:leveloutLeafAnimation, leafMoveAnimation, nil];
// Add the animation group to the leaf layer.
[leafViewLayer addAnimation:theAnimationGroup forKey:@"animatLeafFalling"];
Muchas gracias Frank Schmitt! Tu eres el hombre. theAnimationGroup.fillMode = kCAFillModeForwards; Fue la llave Si vienes por Estocolmo, te debo un café. =) – ABeanSits