2013-06-03 2 views
4

저는 이것을 구현하려했지만 아이폰 앱이 흔들리는 것처럼 코드를 삭제할 수 없었습니다.uiimageview에서 흔들기 애니메이션을 넣는 방법은 무엇입니까?

CABasicAnimation *animation = 
         [CABasicAnimation animationWithKeyPath:@"position"]; 
[animation setDuration:0.05]; 
[animation setRepeatCount:8]; 
[animation setAutoreverses:YES]; 
[animation setFromValue:[NSValue valueWithCGPoint: 
       CGPointMake([lockView center].x - 20.0f, [lockView center].y)]]; 
[animation setToValue:[NSValue valueWithCGPoint: 
       CGPointMake([lockView center].x + 20.0f, [lockView center].y)]]; 
[[lockView layer] addAnimation:animation forKey:@"position"]; 
+0

이 답변을 참조하십시오, 그것은 당신을 도울 수 있습니다 http://stackoverflow.com/questions/1632364/shake-visual-effect-on-iphone -not-shaking-the-device – pbibergal

답변

6

다음 코드로이를 수행 할 수 있습니다. 회전 각도를에서 정의 할 수 있습니다.

CABasicAnimation* anim = [CABasicAnimation animationWithKeyPath:@"transform.rotation"]; 
    [anim setToValue:[NSNumber numberWithFloat:0.0f]]; 
    [anim setFromValue:[NSNumber numberWithDouble:M_PI/16]]; // rotation angle 
    [anim setDuration:0.1]; 
    [anim setRepeatCount:NSUIntegerMax]; 
    [anim setAutoreverses:YES]; 
    [[imageView layer] addAnimation:anim forKey:@"iconShake"]; 
+0

감사합니다.이 코드는 작동합니다! – Napster

6

이 시도 :

- (void)animateImage 
{ 
    CAKeyframeAnimation* animation = [CAKeyframeAnimation animationWithKeyPath:@"transform"]; 

    CGFloat wobbleAngle = 0.06f; 

    NSValue* valLeft = [NSValue valueWithCATransform3D:CATransform3DMakeRotation(wobbleAngle, 0.0f, 0.0f, 1.0f)]; 
    NSValue* valRight = [NSValue valueWithCATransform3D:CATransform3DMakeRotation(-wobbleAngle, 0.0f, 0.0f, 1.0f)]; 
    animation.values = [NSArray arrayWithObjects:valLeft, valRight, nil]; 

    animation.autoreverses = YES; 
    animation.duration = 0.125; 
    animation.repeatCount = HUGE_VALF; 

    [[lockView layer] addAnimation:animation forKey:@"shakeAnimation"]; 
} 
+0

감사합니다. 정말 멋진 ... –

+0

매력처럼 작동합니다! 감사. – Edgars