4

私はこれを実装しようとしてきましたが、削除中にiPhoneアプリが揺れるように揺れるコードを見つけることができませんでした!

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"];
4

2 に答える 2

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"];
于 2013-06-03T07:18:27.993 に答える
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"];
}
于 2013-06-03T07:20:40.200 に答える