 <p>That's because you are not translating it, when you use CGAffineTransformMakeTranslation you are saying <em>Give me these coordinates</em> not <em>give me this offset</em>. In other words, make translation gives you the translation from the <em>identity</em> matrix. The function you want is CGAffineTransformTranslate. This will apply the translation to the current transform (passed as the first argument).</p>