Je veux faire osciller une image d'avant en arrière dans mon application, de la même manière que les icônes de l'iPhone oscillent lorsqu'on appuie dessus. Quelle est la meilleure façon de le faire ?
C'est ma première incursion dans les animations qui n'utilisent pas un GIF animé. Je pense que l'idée est de faire tourner légèrement l'image d'avant en arrière pour créer l'effet d'oscillation. J'ai envisagé d'utiliser CABasicAnimation et CAKeyframeAnimation. CABasicAnimation crée une instabilité à chaque répétition car il saute à la position de départ et n'interpole pas en retour. CAKeyframeAnimation semble être la solution, mais je n'arrive pas à la faire fonctionner. Il doit me manquer quelque chose. Voici mon code utilisant la CAKeyframeAnimation (qui ne fonctionne pas) :
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];
Il existe peut-être une solution plus simple qui m'échappe. J'apprécierais toute indication. Merci.