1,CAKeyframeAnimation介绍
CAKeyframeAnimation可以实现关键帧动画,这个类可以实现某一属性按照一串的数值进行动画,就像是一帧一帧的制作出来一样。
2,使用样例(设置五个关键点坐标,图片依次按关键点移动)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
|
let animation = CAKeyframeAnimation (keyPath: "position" ) //设置5个位置点 let p1 = CGPointMake (0.0, 0.0) let p2 = CGPointMake (300, 0.0) let p3 = CGPointMake (0.0, 400) let p4 = CGPointMake (300, 400) let p5 = CGPointMake (150, 200) //赋值 animation.values = [ NSValue ( CGPoint : p1), NSValue ( CGPoint : p2), NSValue ( CGPoint : p3), NSValue ( CGPoint : p4), NSValue ( CGPoint : p5)] //每个动作的时间百分比 animation.keyTimes = [ NSNumber (float: 0.0), NSNumber (float: 0.4), NSNumber (float: 0.6), NSNumber (float: 0.8), NSNumber (float: 1.0), ] animation.delegate = self animation.duration = 6.0 self .imageView.layer.addAnimation(animation, forKey: "Image-Move" ) |
3,可以设置动画代理,监听开始和结束动作
1
2
3
4
5
6
7
8
9
|
animation.delegate = self override func animationDidStart(anim: CAAnimation !) { println ( "动画开始" ) } override func animationDidStop(anim: CAAnimation !, finished flag: Bool ) { println ( "动画结束" ) } |