 <p>The new animation should take the current transform (translation) into account:</p> <pre><code> CATransform3D leftTransform = CATransform3DMakeRotation(wobbleAngle, 0.0f, 0.0f, 1.0f); leftTransform = CATransform3DConcat(layer.transform, leftTransform); CATransform3D rightTransform = CATransform3DMakeRotation(-wobbleAngle, 0.0f, 0.0f, 1.0f); rightTransform = CATransform3DConcat(layer.transform, rightTransform); NSValue* valLeft = [NSValue valueWithCATransform3D:leftTransform]; NSValue* valRight = [NSValue valueWithCATransform3D:rightTransform]; </code></pre> <p>Where <code>layer</code> is the layer that will be animated.</p>