I wanted to continue this question if someone stumbles upon it. Now I use key frames:
-(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"]; }
source share