用了好长时间的动画了,一直没有总结,打算把它总结一下,做个记录。
核心动画分类:
CABasicAnimation -- 基本动画
CAKeyframeAnimation -- 关键帧动画
CATransition -- 转场动画
CASpringAnimation -- 弹簧动画
CAAnimationGroup -- 动画组
CABasicAnimation 基本动画
* 动画的本质就是修改图层的某些属性
* 核心动画,利用核心动画修改Layer某些属性
简介
基本动画是CAPropertyAnimation的子类
属性说明:
。fromValue:keyPath相应属性的初始值
。toValue:keyPath相对应的结束值
动画过程说明:
随着动画的进行,在长度为duration的持续时间内,keyPath相应的属性值从fromValue渐渐变为toValue
keyPath内容是CALayer的可动画Animatable属性
如果fillMode=kCAFillModeForwards同时removedOnComletion=NO,那么在动画执行完毕后,图层会保持显示动画执行后的状态。但在实质上,图层的属性值还是动画执行前的初始值,并没有真正被改变。
以下是代码实现步骤:
* 1.创建基础核心动画
CABasicAnimation *anim = [CABasicAnimation animation];
* 2.描述修改Layer的某个属性
anim.keyPath = @"position”;
* 3.描述修改Layer属性的值
动画的起点(如果不设,以默认值为终点)
anim.fromValue = @0
动画的终点
anim.toValue = [NSValue valueWithCGPoint:CGPointMake(300, 400)];
* 4.动画时长
anim.duration = 1;
* 5.取消反弹
(1)在动画完成的时候不要给我把动画销毁
anim.removedOnCompletion = NO;
(2)动画永远保持最新的状态
anim.fillMode = kCAFillModeForwards;
* 6.添加核心动画
[_reaView.layer addAnimation:anim forKey:nil];
关于keyPath:
具体参数值如下:
transform.scale = 缩放
transform.scale.x = 宽的比例转换
transform.scale.y = 高的比例转换
transform.rotation.z = 平面圖的旋转
opacity = 透明度
margin = 边框间隔
zPosition = 平面图的位置
backgroundColor = 背景色
cornerRadius = layer的角度
borderWidth = 边框宽度
contents = 内容
bounds = 大小
contentsRect = 内容矩形
frame = 位置
hidden = 隐藏
mask = 标记
position = 位置
shadowOffset = 阴影偏移
shadowColor = 阴影颜色
shadowRadius = 阴影角度