首页 > 移动平台 > 详细

iOS CALayer 抖动效果

时间:2015-06-25 13:40:09      阅读:212      评论:0      收藏:0      [点我收藏+]

方式一

 1 - (void)shakeAnimationForView:(UIView *)view
 2 {
 3     CALayer *layer = [view layer];
 4     CAKeyframeAnimation *animation = [CAKeyframeAnimation animation];
 5     animation.keyPath = @"position.x";
 6     animation.values = @[ @0, @5, @10, @-10, @10, @5, @0 ];
 7     animation.keyTimes = @[ @0, @(1 / 6.0),@(2 / 6.0), @(3 / 6.0), @(5 / 6.0),@(2 / 6.0), @1 ];
 8     animation.duration = 0.4;
 9     
10     animation.additive = YES;
11     
12     [layer addAnimation:animation forKey:@"shake"];
13 }

 

方式二

 1 - (void)shakeAnimationForView:(UIView *) view
 2 
 3 {   
 4     //获取到当前View的layer
 5     CALayer *viewLayer = view.layer;
 6     
 7     //获取当前View的位置
 8     CGPoint position = viewLayer.position;
 9 
10     //移动的两个终点位置
11     CGFloat scale = 5.0f;
12     CGPoint beginPosition = CGPointMake(position.x + scale, position.y);
13     CGPoint endPosition = CGPointMake(position.x - scale, position.y);
14     
15     //设置动画
16     CABasicAnimation *animation = [CABasicAnimation animationWithKeyPath:@"position"];
17     
18     //设置运动形式
19     [animation setTimingFunction:[CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionDefault]];
20     
21     //设置开始位置
22     [animation setFromValue:[NSValue valueWithCGPoint:beginPosition]];
23     
24     //设置结束位置
25     [animation setToValue:[NSValue valueWithCGPoint:endPosition]];
26     
27     //设置自动反转
28     [animation setAutoreverses:YES];
29     
30     //设置时间
31     [animation setDuration:0.1];
32     
33     //设置次数
34     [animation setRepeatCount:3];
35     
36     //添加上动画
37     [viewLayer addAnimation:animation forKey:nil];
38     
39 }

 

iOS CALayer 抖动效果

原文:http://www.cnblogs.com/airy99/p/4599638.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!