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
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
transformkeypath and create really cool effects.
How To Use
git submodule add https://github.com/NachoSoto/NSBKeyframeAnimation Dependencies/NSBKeyframeAnimation
Dependencies/NSBKeyframeAnimation/Classes/NSBKeyframeAnimationfiles to your project.
QuartzCore.frameworkto project libraries.
- You're all set!
- NSBKeyframeAnimation doesn't use ARC. You can compile it in your ARC project by adding the linker flag
NSBKeyframeAnimation is available under the MIT license. See the LICENSE file for more info.