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?
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"];
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.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With