我想在我的应用程序中来回摆动图像,类似于按下 iPhone 图标时的摆动方式。最好的方法是什么?
这是我第一次尝试不使用动画 GIF 的动画。我认为这个想法是稍微来回旋转图像以产生摆动效果。我看过使用 CABasicAnimation 和 CAKeyframeAnimation。CABasicAnimation 每次重复时都会产生抖动,因为它会跳转到起始位置并且不会向后插值。CAKeyframeAnimation 似乎是解决方案,但我无法让它工作。我肯定错过了什么。这是我使用 CAKeyframeAnimation 的代码(不起作用):
NSString *keypath = @"wobbleImage";
CAKeyframeAnimation *animation = [CAKeyframeAnimation animationWithKeyPath:keypath];
animation.duration = 1.0f;
animation.delegate = self;
animation.repeatCount = 5;
CGFloat wobbleAngle = 0.0872664626f;
NSValue *initial = [NSValue valueWithCATransform3D:CATransform3DMakeRotation(0.0f, 0.0f, 0.0f, 1.0f)];
NSValue *middle = [NSValue valueWithCATransform3D:CATransform3DMakeRotation(wobbleAngle, 0.0f, 0.0f, 1.0f)];
NSValue *final = [NSValue valueWithCATransform3D:CATransform3DMakeRotation(-wobbleAngle, 0.0f, 0.0f, 1.0f)];
animation.values = [NSArray arrayWithObjects:initial, middle, final, nil];
[imageView.layer addAnimation:animation forKey:keypath];
或者可能有一个我只是想念的更简单的解决方案。感谢任何指针。谢谢!