About  Animation VC

作者: 黑羽肃霜 | 来源:发表于2016-01-13 08:52 被阅读513次

抽屉效果里面重叠 VC 涉及到的动画效果!!

首先讲一下几种动画效果(科普)

  • 从左至右分别列出了 Spring Animation, Ease-Out Animation 和 Linear Animation 的动画效果:


    spring-1.gif

介绍函数(普通动画和这个函数就是3,4个参数不同)

+ (void)animateWithDuration:(NSTimeInterval)duration
                      delay:(NSTimeInterval)delay
     usingSpringWithDamping:(CGFloat)dampingRatio
      initialSpringVelocity:(CGFloat)velocity
                    options:(UIViewAnimationOptions)options
                 animations:(void (^)(void))animations
                 completion:(void (^)(BOOL finished))completion
  • (NSTimeInterval)duration —— 动画时间
  • (NSTimeInterval)delay —— 延时几秒后开始执行动画
  • Spring Animation 的 API 和一般动画相比多了两个参数,分别是 usingSpringWithDampinginitialSpringVelocity
    • usingSpringWithDamping 参数
      usingSpringWithDamping的范围为0.0f到1.0f,数值越小「弹簧」的振动效果越明显。下图演示了在initialSpringVelocity为0.0f的情况下,usingSpringWithDamping分别取0.2f,0.5f和1.0f的情况,如下图


      tutu
    • initialSpringVelocity 参数
      initialSpringVelocity则表示初始的速度,数值越大一开始移动越快。下图演示了在usingSpringWithDamping为1.0f时,initialSpringVelocity分别取5.0f,15.0f和25.0f的情况。值得注意的是,初始速度取值较高而时间较短时,也会出现反弹情况
      ttt
  • options —— 为动画执行的选项,如下:

||
|:|
| UIViewAnimationOptionLayoutSubviews | 提交动画的时候布局子控件,表示子控件将和父控件一同动画 |
| UIViewAnimationOptionAllowUserInteraction | 动画时允许用户交流,比如触摸 |
| UIViewAnimationOptionBeginFromCurrentState | 从当前状态开始动画 |
| UIViewAnimationOptionRepeat | 动画无限重复 |
| UIViewAnimationOptionAutoreverse | 执行动画回路,前提是设置动画无限重复 |
| UIViewAnimationOptionOverrideInheritedDuration | 忽略外层动画嵌套的执行时间 |
| UIViewAnimationOptionOverrideInheritedCurve | 忽略外层动画嵌套的时间变化曲线 |
| UIViewAnimationOptionAllowAnimatedContent | 通过改变属性和重绘实现动画效果,如果key没有提交动画将使用快照|
| UIViewAnimationOptionShowHideTransitionViews | 用显隐的方式替代添加移除图层的动画效果|
| UIViewAnimationOptionOverrideInheritedOptions | 忽略嵌套继承的选项|

| 时间函数曲线相关||
|:|
| UIViewAnimationOptionCurveEaseInOut | 时间曲线函数,由慢到快|
| UIViewAnimationOptionCurveEaseIn | 时间曲线函数,由慢到特别快 |
| UIViewAnimationOptionCurveEaseOut | 时间曲线函数,由快到慢 |
| UIViewAnimationOptionCurveLinear | 时间曲线函数,匀速 |

|转场动画相关的 ||
|:|
| UIViewAnimationOptionTransitionNone | 无转场动画 |
| UIViewAnimationOptionTransitionFlipFromLeft | 转场从左翻转 |
| UIViewAnimationOptionTransitionFlipFromRight | 转场从右翻转 |
| UIViewAnimationOptionTransitionCurlUp | 上卷转场 |
| UIViewAnimationOptionTransitionCurlDown | 下卷转场 |
| UIViewAnimationOptionTransitionCrossDissolve | 转场交叉消失 |
| UIViewAnimationOptionTransitionFlipFromTop | 转场从上翻转 |
| UIViewAnimationOptionTransitionFlipFromBottom | 转场从下翻转 |

  • completion —— 为动画执行完毕以后执行的代码块
  • animations —— 动画效果的代码块(动画结束以后的效果)

相关文章

网友评论

  • LD_左岸:[UIView animateWithDuration:duration
    delay:0.0
    usingSpringWithDamping:0.6 //弹簧效果 值越小 弹簧越明显
    initialSpringVelocity:0.0 //则表示初始的速度,数值越大一开始移动越快
    options:UIViewAnimationOptionCurveLinear
    animations:^{
    toVC.view.frame = finalFrame;
    } completion:^(BOOL finished) {
    // 5. Tell context that we completed.
    [transitionContext completeTransition:YES];
    }];
    我这么写的 发现options (options —— 为动画执行的选项)这个参数没用呢>?

本文标题:About  Animation VC

本文链接:https://www.haomeiwen.com/subject/pzsckttx.html