Frage

Ich versuche, nach unten um ein Bild zu skalieren, um das Bild zu ändern, skaliert es dann wieder nach oben.

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

macht den Schrumpf, dann, wenn es abgeschlossen ist, ändere ich das Bild, und starten Sie die wachsen:

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

Das auf dem Simulator funktioniert gut, aber auf dem Gerät, wenn der Schrumpf abgeschlossen ist, bekomme ich einen Blitz der in vollen Größe, altes Bild, dann ist die wachsen Animation beginnt mit dem neuen Bild.

Jede Idee, wie man loswerden, dass Flash erhalten?

(Ich habe versucht, „removedOnCompletion = NO;“. Und versucht, die Affine gleich der verkleinerten Größe Einstellung nach dem ersten Abschluss, aber hatte nicht viel Glück)

Irgendwelche Tipps geschätzt.

kb

Edit:

Ausgezeichnet! Einstellung wie folgt vor:

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

das Blinken entfernt. Danke, Ben!

War es hilfreich?

Lösung

Versuchen Sie, Ihre Animation des fillMode Einstellung kCAFillModeForwards. Das sollte das Element verlassen, wie es am Ende der Animation war, anstatt vor.

Andere Tipps

Ich habe das gleiche Problem hatte, wenn ich einen anderen CAAnimation im animationDidStop Verfahren zu schaffen versucht. Ich schlage vor, mit CAKeyframeAnimation.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top