UIView frame animation "wiggle"

Tengo esta loca pieza de código. ¿Cómo animo esto con Core Animation, así que tengo less código? He encontrado un código para hacer animation "wiggle", pero eso está en 3D, solo quiero que la vista se mueva de lado a lado, no quiero animarla rebotando en los lados.

[UIView animateWithDuration:0.1f animations:^{ CGRect frame = tableView.frame; frame.origin.x -= 4; tableView.frame = frame; } completion:^(BOOL finished) { [UIView animateWithDuration:0.1f animations:^{ CGRect frame = tableView.frame; frame.origin.x += 4; tableView.frame = frame; } completion:^(BOOL finished) { [UIView animateWithDuration:0.1f animations:^{ CGRect frame = tableView.frame; frame.origin.x -= 4; tableView.frame = frame; } completion:^(BOOL finished) { [UIView animateWithDuration:0.1f animations:^{ CGRect frame = tableView.frame; frame.origin.x = 0; tableView.frame = frame; } completion:^(BOOL finished) { // Nothing } ]; } ]; } ]; } ]; 

Esta pregunta es una forma muy concisa de realizar una animation de movimiento repetido. Lo usé para un movimiento de rotation, pero puedes aplicar cualquier transformación, en tu caso, una traducción

Quería seguir con esta pregunta en caso de que alguien se tropiece con eso. Ahora estoy usando frameworks key:

 -(void)wiggleView { CAKeyframeAnimation *animation = [CAKeyframeAnimation animation]; animation.keyPath = @"position.x"; animation.values = @[ @0, @8, @-8, @4, @0 ]; animation.keyTimes = @[ @0, @(1 / 6.0), @(3 / 6.0), @(5 / 6.0), @1 ]; animation.duration = 0.4; animation.additive = YES; [self.layer addAnimation:animation forKey:@"wiggle"]; }