如何把摇动动画放在uiimageview上?
问题描述:
我一直在试图实现这一点,但找不到任何代码,可以摇动它像iPhone应用程序在删除它们时动摇!如何把摇动动画放在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"];
答
您可以通过以下代码实现此目的,您可以定义来自和来自的旋转角度。
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
答
试试这个:
- (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
看到这个答案,它可以帮助你:http://*.com/questions/1632364/shake-visual-effect-on-iphone -not-shaking-the-device – pbibergal