Re: problems with CAAnimation
Re: problems with CAAnimation
- Subject: Re: problems with CAAnimation
- From: Matt Long <email@hidden>
- Date: Thu, 19 Mar 2009 09:31:36 -0600
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 (email@hidden)
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:
This email sent to email@hidden