Question

J'essaie de réduire une image, de la modifier, puis de la redimensionner.

CABasicAnimation* shrink = [CABasicAnimation animationWithKeyPath:@"transform.scale"];
shrink.toValue = [NSNumber numberWithDouble:0];
shrink.duration = 1;
    shrink.delegate = self;
    [myImageView.layer addAnimation:shrink forKey:@"shrink"];   

effectue la réduction, puis, une fois celle-ci terminée, je modifie l'image et lance la croissance:

- (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"];   
}

Cela fonctionne très bien sur le simulateur, mais sur l'appareil, lorsque la réduction est terminée, je reçois un éclair de l'ancienne image pleine taille, puis l'animation d'agrandissement commence avec la nouvelle image.

Avez-vous une idée de la façon de vous débarrasser de ce flash?

(J'ai essayé "removedOnCompletion = NO;" et essayé de définir l'affinité affineTransform égal à la taille réduite après le premier achèvement, mais je n'ai pas eu beaucoup de chance.)

Tous les conseils appréciés.

kb

Modifier:

Excellent! Définir les éléments suivants:

shrink.fillMode = kCAFillModeForwards; 
shrink.removedOnCompletion = NO; 

Suppression du clignotement. Merci, Ben!

Était-ce utile?

La solution

Essayez de définir le fillMode de votre animation sur kCAFillModeForwards . Cela devrait laisser l'élément tel qu'il était à la fin de l'animation, plutôt qu'avant.

Autres conseils

J'ai eu le même problème lorsque j'ai essayé de créer un autre CAAnimation dans la méthode animationDidStop. Je suggère d'utiliser CAKeyframeAnimation.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top