其中属性动画(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"];
}