I started implementing this class as part of one of the demos in the CoreAnimation class I gave in Madrid on July 2012 (http://www.youtube.com/watch?v=54ESi6snSfI). I decided to finish it and create a sample project with it.
NSBKeyframeAnimation allows you to create jQuery-like animations with a high level interface in a similar way as you would do with -[UIView animateWithDuration:delay:options:animations:completion:]
, but with any kind of function. You can animate any keypath between two values (for now they have to be scalar but I'll add support for any NSValue
).
NSBKeyframeAnimation *animation = [NSBKeyframeAnimation animationWithKeyPath:@"position.x"
duration:5
startValue:0
endValue:1000
function:NSBKeyframeAnimationFunctionEaseInOutCubic];
[view.layer setValue:animation.values.lastObject forKeyPath:@"position.x"];
[view.layer addAnimation:animation forKey:@"position.x"];
- I'm working on a category to UIView to make using this class a much easier task. Coming soon!
- I will add helper methods so that you can easily generate animations on the
transform
keypath and create really cool effects.
- Run
git submodule add https://github.com/NachoSoto/NSBKeyframeAnimation Dependencies/NSBKeyframeAnimation
- Add
Dependencies/NSBKeyframeAnimation/Classes/NSBKeyframeAnimation
files to your project. - Add
QuartzCore.framework
to project libraries. - You're all set!
- NSBKeyframeAnimation doesn't use ARC. You can compile it in your ARC project by adding the linker flag
-fno-objc-arc
.
NSBKeyframeAnimation is available under the MIT license. See the LICENSE file for more info.