马上说说最简单的动画组
1.所谓的动画组,也是CAAnimation
的一个子类,就是一个group,可以同时执行很多个动画的,特有的属性是animations
,用于盛放多个动画.
2.盛放的是基础动画
缩小和旋转同时执行
//同时执行多个动画
private func operatorManyAnim()
{
//缩放,平移,和旋转同时执行
let sAnim = CABasicAnimation()
sAnim.keyPath = "transform.scale"
sAnim.toValue = (0.0)
let rAnim = CABasicAnimation()
rAnim.keyPath = "transform.rotation"
rAnim.toValue = M_PI
let group = CAAnimationGroup()
group.animations = [sAnim,rAnim]
group.removedOnCompletion = false
group.fillMode = kCAFillModeForwards
group.duration = 1
gv.layer.addAnimation(group, forKey: "2323")
}
注意点
1.动画组继承自CAAnimation
2.removedOnCompletion
和fillMode
属性要给group才行,否则有问题
用4篇文章讲完了核心动画,但是都是基本的公式,可以想象成物理题,公式就那几个,但是千遍万户的种类是相当的多,所以要勤学勤练才好,过去几天,会给出几个动画的效果及思路。
如果你看完四篇文章还是云里雾里,那就记住这张图片,就会了所有的动画
继承结构图
1.动画一共有四个,基本动画,帧动画,转场动画,动画组,但都是继承自CAAnimation
2.基本动画特有的属性是fromValue
,toValue
,只能从一个值到另一值
3.帧动画有两个方式赋值,values
,path
4.基本动画,帧动画都是继承于CAPropertyAnimation
,都要想给动画指定要执行什么动画的操作
5.转场动画在实际的开发中要注意的是type
和subtype
,前者是转场样式,后者是转场的方向
6.动画组特有的属性是animations
,用来放置多个动画,但是要注意,一旦结束了动画,默认都是移除动画,这两个属性,应该给动画组对象!,而其他种类动画都给了动画对象
7.可以实现代理方法,监听动画开始和结束
8.所有的动画都有timingFunction
的属性,用于处理进入和出去的动画特效
9.addAnimation:forKey:
第二个属性,适用于给动画对象多一个名字,将来移除动画的时候,方便删除~
10.所有的动画都是时间,共有的属性,动画都是对layer
进行操作的!