? ? 文末有彩蛋邑商。
? ? 想實現(xiàn)一個這樣的動畫:
? ? 廢話不多說摄咆,直接上代碼。
? ? 第一步:創(chuàng)建視圖人断。
UIButton *button = [[UIButton alloc]initWithFrame:CGRectMake(100, 100, 100, 100)];
button.backgroundColor = [UIColor redColor];
[button addTarget:self action:@selector(shakeAnimationForView:) forControlEvents:UIControlEventTouchUpInside];
[self.view addSubview:button];
? ? 第二步:寫動畫吭从。
- (void)shakeAnimationForView:(UIView *) view
{
//獲取到當前View的layer
CALayer *viewLayer = view.layer;
//獲取當前View的位置
CGPoint position = viewLayer.position;
//移動的兩個終點位置
CGPoint beginPosition = CGPointMake(position.x + 10, position.y);
CGPoint endPosition = CGPointMake(position.x - 10, position.y);
//設(shè)置動畫
CABasicAnimation *animation = [CABasicAnimation animationWithKeyPath:@"position"];
//設(shè)置運動形式
[animation setTimingFunction:[CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionDefault]];
//設(shè)置開始位置
[animation setFromValue:[NSValue valueWithCGPoint:beginPosition]];
//設(shè)置結(jié)束位置
[animation setToValue:[NSValue valueWithCGPoint:endPosition]];
//設(shè)置自動反轉(zhuǎn)
[animation setAutoreverses:YES];
//設(shè)置時間
[animation setDuration:.06];
//設(shè)置次數(shù)
[animation setRepeatCount:3];
//添加上動畫
[viewLayer addAnimation:animation forKey:nil];
}
? ? 搞定。
? ? 彩蛋:KenshinCui大神的動畫入門恶迈,寫的非常簡單易懂涩金。看完從此對iOS動畫挺直腰桿走路暇仲。