美文网首页
CABasicAnimation

CABasicAnimation

作者: 翻这个墙 | 来源:发表于2017-11-23 10:57 被阅读16次

    CABasicAnimation

    • 父类是CAPropertyAnimation

    CABasicAnimation——基本动画

    • 基本动画,是CAPropertyAnimation的子类

    • 属性说明:

      • fromValue:keyPath相应属性的初始值
      • toValue:keyPath相应属性的结束值
    • 动画过程说明:

      • 随着动画的进行,在长度为duration的持续时间内,keyPath相应属性的值从fromValue渐渐地变为toValue
      • keyPath内容是CALayer的可动画Animatable属性
      • 如果fillMode=kCAFillModeForwards同时removedOnComletion=NO,那么在动画执行完毕后,图层会保持显示动画执行后的状态。但在实质上,图层的属性值还是动画执行前的初始值,并没有真正被改变。

    CABasicAnimation实现形变效果

        // 1.创建核心动画
        CABasicAnimation *anim = [CABasicAnimation animation];
    
        // 2.描述修改Layer哪个属性
        anim.keyPath = keyPath(_redView.layer, position);
    ##核心代码
        // 3.描述修改layer属性的值
        // 动画的起点
        //    anim.fromValue =
        // 动画的终点
        anim.toValue = [NSValue valueWithCGPoint:CGPointMake(300, 400)];
    
        // 动画时长
        anim.duration = 1;
    
        // 取消反弹
        // 1.在动画完成的时候不要给我把动画销毁
        anim.removedOnCompletion = NO;
    
        // 2.动画永远保持最新的状态
        anim.fillMode = kCAFillModeForwards;
    ##
    
        // 添加核心动画
        [_redView.layer addAnimation:anim forKey:nil];
    

    CABasicAnimation实现缩放-心脏跳动效果

        // 1.创建动画对象
        CABasicAnimation *anim = [CABasicAnimation animation];
    
        // 2.描述修改layer的属性
        anim.keyPath = keyPath(_imageView.layer, transform);
    ##核心代码
        // 3.修改layer的值
        anim.toValue = [NSValue valueWithCATransform3D:CATransform3DMakeScale(0.5, 0.5, 1)];
    
        // 设置动画执行次数
        anim.repeatCount = MAXFLOAT;
    
        //自动翻转
        anim.autoreveres = YES;
    ##
        // 4.添加到图层
        [_imageView.layer addAnimation:anim forKey:nil];
    

    相关文章

      网友评论

          本文标题:CABasicAnimation

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