核心动画之基本动画CABasicAnimation

来源:互联网 发布:ubuntu划分区备份 编辑:程序博客网 时间:2024/05/21 17:51
iOS中动画包括属性动画(CAPropertyAnimation),组动画(CAAnimationGroup)和转场动画(CATransition).
其中属性动画(CAPropertyAnimation)又包括基本动画(CABasicAnimation)和关键帧动画(CAKeyframeAnimation).
不过我们事先要明确一点:动画主要作用于图层(Layer),而不是作用于视图View。View主要用来处理响应事件,Layer才是真正的负责显示。


在头文件中我们可以发现基本动画主要有三个主要的属性。
@property(nullable, strong) id formValue;
@property(nullable, strong) id toValue;
@property(nullable, strong) id byValue;


fromValue:顾名思意从哪儿开始。
toValue:到哪儿结束。
byValue:从哪儿到哪儿,不过其具有累加的效果。


另外当核心动画执行完后默认会回到原来的位置,假如我们想要其不回到原来的位置,那么我们可以加上下列代码。

       animate.fillMode kCAFillModeForwards;

       animate.removedOnCompletion NO;

示例代码:

 if (![self.iconView.layer animationForKey:@"basicAnimation"]) {
        CABasicAnimation *anim = [[CABasicAnimation alloc]init];
        //修改属性
        anim.keyPath = @"position.y";
        //设置动画从0到100
        anim.fromValue = @(0);
        anim.toValue = @(500);
        
        //设置动画执行时间
        anim.duration = 3;
        
      //设置动画重复10次
        anim.repeatCount = 100;
        
        anim.fillMode = kCAFillModeForwards;
        anim.removedOnCompletion = NO;
        
        //给其设置速度(先快后慢)
        anim.timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseOut];
        //添加到layer图层上
        [self.iconView.layer addAnimation:anim forKey:@"basicAnimation"];

}

0 0
原创粉丝点击