Your layer's transform.scale knows nothing of the toValue in the animation. You have to explicitly set it in the layer in addition to animating it. This also means that you need to add the animation using the correct keypath otherwise it will use the default animation instead of yours. Change your code to do this:

[rootLayer setValue:[[[CardManager instance] config] objectForKey:@"cardHoverScale"] forKeyPath:@"transform.scale"];
[rootLayer addAnimation:growAnimation forKey:@"transform.scale"];

Notice I've specified a keypath in the addAnimation: call. I haven't actually tested this, by the way, but the basic idea is that you have to set the value in the layer in order for it to stick. And you have to specify the correct keypath or it won't use your animation when it runs.

There is another way to make it sticky without actually changing the layer's value. You explicitly set these two fields on the animation:

[growAnimation setFillMode:kCAFillModeForwards];
[growAnimation setRemovedOnCompletion:NO];

This will not cause the value in the layer to change, however, it will give you the visible stickiness you seek.

Best Regards.

-Matt


On Mar 19, 2009, at 9:13 AM, Memo Akten wrote:

Hi, I posted this on the quartz list yesterday but received no response, it seems like such a simple thing...

When I add an animation to my layer, it animates, but then snaps back to its previous position. Is this normal?

growAnimation = [[CABasicAnimation animationWithKeyPath:@"transform.scale"] retain];
growAnimation.duration          = 0.25;
growAnimation.fromValue         = [NSNumber numberWithFloat:1.0f];
growAnimation.toValue = [[[CardManager instance] config] objectForKey:@"cardHoverScale"]; growAnimation.timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseInEaseOut];
        
[rootLayer addAnimation:growAnimation forKey:nil];


_______________________________________________

Cocoa-dev mailing list (Cocoa-dev@lists.apple.com)

Please do not post admin requests or moderator comments to the list.
Contact the moderators at cocoa-dev-admins(at)lists.apple.com

Help/Unsubscribe/Update your Subscription:
http://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com

This email sent to arch...@mail-archive.com

Reply via email to