What explains best the CAPropertyAnimation animationWithKeyPath: parameter?

Thanks picture Thanks · Jul 21, 2009 · Viewed 14k times · Source

I'd like to have a better understanding of this parameter in

+ (id)animationWithKeyPath:(NSString *)keyPath

They just say: "The key path of the property to be animated."

In some example snippets I see things like:

CABasicAnimation *fadeInAnimation = [CABasicAnimation animationWithKeyPath:@"opacity"];

CAKeyframeAnimation *animatedIconAnimation = [CAKeyframeAnimation animationWithKeyPath: @"frameOrigin"];

Is there a list or rule of thumb for determining the correct key path parameter? i.e. when I want to animate the width of a frame, what kind of rules would I have to follow to get to the correct key path parameter string?

Answer

Julian picture Julian · Apr 21, 2010

Well for example if you're animating the layer property of a UIView, then check out CALayer.h - here you can find the property opacity, and the inline doc mentions that it is animatable. Or frameOrigin in NSView.

A bunch of properties are animatable, for iphone:

https://developer.apple.com/library/ios/documentation/Cocoa/Conceptual/CoreAnimation_guide/AnimatableProperties/AnimatableProperties.html

and mac:

http://developer.apple.com/mac/library/documentation/cocoa/conceptual/CoreAnimation_guide/Articles/AnimProps.html#//apple_ref/doc/uid/TP40005942-SW4

And then there are some extensions:

http://developer.apple.com/mac/library/documentation/cocoa/conceptual/CoreAnimation_guide/Articles/KVCAdditions.html

to give you:

[CABasicAnimation animationWithKeyPath:@"transform.scale.x"];