Pupillam
Pupillam

Reputation: 641

How to make scaling to persist with CABasicAnimation

I am creating some animation on my application and the code below zooms out an object till it disappears. I can't figure out how to make the object to disappear and keep that way, ie. how to make the animation stay put after it finishes. Any gotchas on that? Cheers!

        CABasicAnimation* zoomOut = [CABasicAnimation animationWithKeyPath:@"transform.scale"];
        zoomOut.duration = 1;
        zoomOut.toValue = [NSNumber numberWithFloat:0];
        [draggedObject addAnimation:zoomOut forKey:nil];

Upvotes: 3

Views: 1326

Answers (2)

Pupillam
Pupillam

Reputation: 641

I found it. It also needs the two methods below:

        zoomOut.removedOnCompletion = NO;
        zoomOut.fillMode = kCAFillModeForwards;

Upvotes: 5

nicktones
nicktones

Reputation: 863

Ok so this happens because the animation doesn't actually change the underlying property, which is why it jumps back after the animation is complete.

Try adding this line before the line starting the animation - zoomOut.removedOnCompletion = NO;

Upvotes: 3

Related Questions