Estoy tratando de escalar una imagen, cambiarla y luego escalarla nuevamente.¿Cómo encadenar las animaciones de escala con un iPhone UIImageView?
CABasicAnimation* shrink = [CABasicAnimation animationWithKeyPath:@"transform.scale"];
shrink.toValue = [NSNumber numberWithDouble:0];
shrink.duration = 1;
shrink.delegate = self;
[myImageView.layer addAnimation:shrink forKey:@"shrink"];
hace que la contracción, a continuación, cuando se completa, cambio la imagen, e iniciar el cultivo:
- (void)animationDidStop:(CAAnimation *)theAnimation finished:(BOOL)flag
{
myImageView.image = [images objectAtIndex:image];
CABasicAnimation* grow = [CABasicAnimation animationWithKeyPath:@"transform.scale"];
grow.toValue = CGAffineTransformMakeScale(1,1);
grow.delegate = self;
grow.duration = 1;
[myImageView.layer addAnimation:grow forKey:@"grow"];
}
Esto funciona muy bien en el simulador, pero en el dispositivo, cuando la contracción completa, Obtengo un flash de la imagen antigua de tamaño completo, luego la animación de crecimiento comienza con la nueva imagen.
¿Alguna idea de cómo deshacerse de ese flash?
(que he probado "removedOnCompletion = NO;" y el intento de establecer la AffineTransform igual al tamaño reducido después de la primera realización, pero no tuvo mucha suerte.)
Algún consejo apreciado.
kb
Editar:
Excelente! Estableciendo lo siguiente:
shrink.fillMode = kCAFillModeForwards;
shrink.removedOnCompletion = NO;
Se ha eliminado el parpadeo. Gracias, Ben!
¡Excelente! Configuración de lo siguiente: \t out.fillMode = kCAFillModeForwards; \t out.removedOnCompletion = NO; Se ha eliminado el parpadeo. Gracias, Ben! – KevinButler