iOS CALayer 抖動效果

來源:互聯網
上載者:User

標籤:

方式一

 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 抖動效果

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.