views:

1293

answers:

2

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?

+1  A: 

To understand what a "key path" is, you should learn a little about Key-Value Coding (KVC). To start with, you should read Key-Value Coding Fundamentals, but ultimately you should read through the whole Key-Value Coding Programming Guide. Once you understand KVC, other concepts like Key-Value Observing (KVO) will be much easier to understand.

Nathan de Vries
+1  A: 

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:

http://developer.apple.com/iphone/library/documentation/Cocoa/Conceptual/CoreAnimation_guide/Articles/AnimProps.html#//apple_ref/doc/uid/TP40005942-SW4

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

Julian