本文转载至 http://adad184.com/2015/04/14/opensource-mmtweenanimation/
前言
其实酝酿了有一段时间了 起因是对重度使用后() 感到的一丝不足
- 首先 POP提供的自带动画类型太少(比如想实现如下图的物体落地的动画)
- 其次 除了POPBasicAnimation之外 无法控制动画的duration
所以趁着休陪产假的空档 研究并做出了MMTweenAnimation的第一版
介绍
MMTweenAnimation 是基于Facebook的POP的动画扩展类 提供10种不同的函数动画
Back | Bounce | Circ | Cubic | Elastic |
---|---|---|---|---|
Expo | Quad | Quart | Quint | Sine |
---|---|---|---|---|
建议使用cocoapod安装
1 | pod 'MMTweenAnimation' |
使用方式如下
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | MMTweenAnimation *anim = [MMTweenAnimation animation]; anim.functionType = MMTweenFunctionBounce; anim.easingType = MMTweenEasingOut; anim.duration = 2.0f; anim.fromValue = 0; anim.toValue = 200; anim.animationBlock = ^(double c,double d,double v,id target,MMTweenAnimation *animation) { //c: current time, from the beginning of animation //d: duration, always bigger than c //v: value, after the change at current time UIView *t = (UIView*)target; t.center = CGPointMake(t.x, v); }; [targetView pop_addAnimation:anim forKey:@"center.y"]; |
小结
库中的动画函数部分借鉴自, 同时有个对这些动画进行了展示
后续可能还会添加一些功能 比如
- 提供更多类型的动画函数
- 提供用户自定义的动画函数
- 动画函数的系数可调节