下面有一张IOS官方文档中比较经典一张动画类结构图:
CABasicAnimation :
主要针对CALayer层的各种Property属性设置动画。CALayer的各种属性大部分都支持CABaseAnimation动画效果。
CABasicAnimation *anim = [CABasicAnimation animation];
anim.keyPath = @"cornerRadius";
anim.fromValue = @(0.0);
anim.toValue = @(30.0);
anim.duration = 2.0;
anim.removedOnCompletion = NO;
anim.fillMode = kCAFillModeForwards;
[self.layer addAnimation:anim forKey:nil];
注意这里NSValue 除了数据,还可以设置颜色。
CAKeyframeAnimation
这个动画属性与上一个最大的不同点在于,这个动画属性可以对位置的一组位置信息,并对一组位置信息的不同位置点设置对应的时间参数,同时还可里定义一些复杂的路径,使得这个动画效果按照这个制定的路径位置进行移动。
CAAnimationGroup
故名思议,可以把一组类似CABaseAnimation的动画效果放在一起执行。
CATransition IOS中默认的只有四种转场动画,其它例如一些比较高级的如立方体、水滴波纹效果等都是似有的。
在下面一个部分会对自定义转场动画做一个介绍。