隐式动画、显式动画、关键帧动画

做iOS开发有些日子了,知道动画怎么去实现,但是:

  • 什么是’隐式动画’?

  • 什么是’显式动画’?

  • 什么是’关键帧动画’?

一概不知

1、隐式动画:

  • 核心动画的隐式动画模型假定所有动画图层属性的变化应该是渐进的和异步的。动态的动画场景可以在没有显式的动画图层时候实现。改变动画显示的图层的属性将会导致图层隐式把旧值动画显示为新值,虽然动画是持续的,但是设置新的目标值会导致图层从当前状态动画过度到新的目标值

    OrderSearchVC *search = [[OrderSearchVC alloc] init];
    [self.navigationController pushViewController:search animated:YES];

2、显式动画:

  • 核心动画同事提供了一个显示动画模型。该显式动画模型需要你创建一个动画对象,并设置开始值和结束的值,显示动画不会开始执行,直到你把该动画应用到某个图层上面

CABasicAnimation *opAnim = [CABasicAnimation animationWithKeyPath:@opacity];
opAnim.duration = 1.0;
opAnim.fromValue = [NSNumber numberWithFloat:0.1];
opAnim.toValue= [NSNumber numberWithFloat:1.0];
opAnim.repeatCount = 1;
[view.layer addAnimation:opAnim forKey:@animateOpacity];

3、关键帧动画:

CAKeyframeAnimation *opAnim = [CAKeyframeAnimation animationWithKeyPath:@opacity];
opAnim.duration = 6.0;
opAnim.values =[NSArray arrayWithObjects:
                            [NSNumber numberWithFloat:0.0],
                            [NSNumber numberWithFloat:0.1],
                            [NSNumber numberWithFloat:0.3],
                            [NSNumber numberWithFloat:1.0],
                            nil];
opAnim.keyTimes = [ NSArray arrayWithObjects:
                               [NSNumber numberWithFloat:0.0],
                               [NSNumber numberWithFloat:0.3],
                               [NSNumber numberWithFloat:0.6],
                               [NSNumber numberWithFloat:1.0],
                               nil];
[view.layer addAnimation:opAnim forKey:@keyAnimateOpacity];
    原文作者:海浪whde
    原文地址: https://segmentfault.com/a/1190000004660062
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞