como criar o efeito de ícone oscilante do iphone?

Eu quero balançar uma imagem no meu aplicativo, semelhante à forma como os ícones do iPhone oscilam quando você pressiona ela. Qual é a melhor maneira de fazer isso?

Esta é minha primeira incursão em animações que não usam GIF animado. Penso que a ideia é rodar ligeiramente a imagem para a frente e para trás para criar o efeito de oscilação. Eu olhei usando CABasicAnimation e CAKeyframeAnimation. O CABasicAnimation cria um tremor toda vez que se repete, porque salta para a posição from e não interpola de volta. CAKeyframeAnimation parece ser a solução, exceto que não consigo fazê-la funcionar. Eu devo estar esquecendo alguma coisa. Aqui está o meu código usando o CAKeyframeAnimation (que não funciona):

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


Ou pode haver uma solução totalmente mais simples que eu estou perdendo. Aprecie qualquer ponteiro. Obrigado