CABasicAnimation 简单的用法

//CABasicAnimation
CABasicAnimation 简单的用法_第1张图片

这里一个简单的例子

- (void)scaleLayer {
    //初始化caLayer
    CALayer * scaleLayer = [[CALayer alloc]init];
    scaleLayer.backgroundColor = [UIColor blueColor].CGColor;
    scaleLayer.frame = CGRectMake(100, 100, 100, 100);
    scaleLayer.cornerRadius = 10;
    scaleLayer.contents = (id)[UIImage imageNamed:@"1"].CGImage;
    [self.view.layer addSublayer:scaleLayer];
    //设定动画

    //path 
    //transform
    //rotaion(x,y,z)  scale(x,y,z) translation(x,y,z)
    //eg: transform.scale.x
    /**
     *  CABasicAnimation 主要需要设置 的值
        1.keyPath:指定该动画怎么样执行
        2.fromValue toValue 
        3.autonreverses 回来的动画
        4.repeatCount 重复次数
        5.duration 持续时间
        6.fillMode 模式
     */
    CABasicAnimation * scaleAnimation = [CABasicAnimation animationWithKeyPath:@"transform.scale"];
    scaleAnimation.fromValue = @(1.0);
    scaleAnimation.toValue   = @(1.5);
    scaleAnimation.autoreverses = YES;// 这个是 从 1.0=》1.5 然后从 1.5=》1.0 (两次动画算一次动画)。如果是NO就是一直从1.0=》1.5(一次动画)
    scaleAnimation.repeatCount = MAXFLOAT;
    scaleAnimation.duration = 0.8;

    scaleAnimation.removedOnCompletion = NO;
    /**
     测试的时候 把 repeatCount = 1 

      removedOnCompletion = NO 才有下面的效果
     kCAFillModeForwards: 保持最后的动画状态( 动画时间点向前 = 》 过了初始状态)
     kCAFillModeBackwards:保持初始状态(动画时间点向后=》 初始状态)
     kCAFillModeBoth
     kCAFillModeRemoved

    开始(backward)-----动画执行------> 结束(Forword)

     */
    scaleAnimation.fillMode = kCAFillModeForwards;


    //开始执行动画
    [scaleLayer addAnimation:scaleAnimation forKey:@"scaleAnimation"];

}

你可能感兴趣的:(iOS,动画)