核心动画之基本动画CABasicAnimation

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"];

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值