码迷,mamicode.com
首页 > 移动开发 > 详细

ios核心动画之关键帧动画

时间:2016-01-24 12:50:39      阅读:203      评论:0      收藏:0      [点我收藏+]

标签:

 1 #import "NJViewController.h"
 2 
 3 @interface NJViewController ()
 4 
 5 @property (weak, nonatomic) IBOutlet UIView *customView;
 6 - (IBAction)btnClick:(id)sender;
 7 @end
 8 
 9 @implementation NJViewController
10 
11 - (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
12 {
13 
14     [self test1];
15 //    [self test1];
16 }
17 
18 - (void)test1
19 {
20     // 1.创建核心动画
21     CAKeyframeAnimation *keyAnima = [CAKeyframeAnimation animation];
22     // 1.1告诉系统执行什么动画
23     keyAnima.keyPath = @"position";
24     
25     CGMutablePathRef path = CGPathCreateMutable();
26     CGPathAddEllipseInRect(path, NULL, CGRectMake(0, 100, 200, 200));
27     
28     keyAnima.path = path;
29     CGPathRelease(path);
30     
31     // 1.2保存执行完之后的状态
32     // 1.2.1执行完之后不删除动画
33     keyAnima.removedOnCompletion = NO;
34     // 1.2.2执行完之后保存最新的状态
35     keyAnima.fillMode = kCAFillModeForwards;
36     
37     // 1.3设置动画时间
38     keyAnima.duration = 2;
39     // 2.观察动画什么时候开始执行, 以及什么时候执行完毕
40     keyAnima.delegate = self;
41     // 3.添加核心动画
42     [self.customView.layer addAnimation:keyAnima forKey:@"abc"];
43 }
44 
45 - (IBAction)btnClick:(id)sender {
46     
47     // 停止动画
48     [self.customView.layer removeAnimationForKey:@"abc"];
49 }
50 
51 
52 - (void)test
53 {
54     // 1.创建核心动画
55     CAKeyframeAnimation *keyAnima = [CAKeyframeAnimation animation];
56     // 1.1告诉系统执行什么动画
57     keyAnima.keyPath = @"position";
58     //    NSValue *v1 = [NSValue valueWithCGPoint:CGPointMake(0, 100)];
59     NSValue *v2 = [NSValue valueWithCGPoint:CGPointMake(100, 100)];
60     NSValue *v3 = [NSValue valueWithCGPoint:CGPointMake(100, 200)];
61     NSValue *v4 = [NSValue valueWithCGPoint:CGPointMake(0, 200)];
62     NSValue *v5 = [NSValue valueWithCGPoint:CGPointMake(0, 100)];
63     
64     keyAnima.values = @[v2, v3, v4, v5];
65     
66     //    keyAnima.keyTimes = @[@(0.5) ,@(0.5), @(0.5)];
67     
68     keyAnima.timingFunction =  [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseInEaseOut];
69     
70     // 1.2保存执行完之后的状态
71     // 1.2.1执行完之后不删除动画
72     keyAnima.removedOnCompletion = NO;
73     // 1.2.2执行完之后保存最新的状态
74     keyAnima.fillMode = kCAFillModeForwards;
75     
76     // 1.3设置动画时间
77     keyAnima.duration = 2;
78     
79     // 2.观察动画什么时候开始执行, 以及什么时候执行完毕
80     keyAnima.delegate = self;
81     
82     
83     // 2.添加核心动画
84     [self.customView.layer addAnimation:keyAnima forKey:nil];
85 }
86 
87 - (void)animationDidStart:(CAAnimation *)anim
88 {
89     NSLog(@"animationDidStart");
90 }
91 
92 - (void)animationDidStop:(CAAnimation *)anim finished:(BOOL)flag
93 {
94     NSLog(@"animationDidStop");
95 }
96 
97 
98 @end

 

ios核心动画之关键帧动画

标签:

原文地址:http://www.cnblogs.com/PJHome/p/5154869.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!