How can I rotate a layer using Core Animation around an arbitrary point? (In my case, a point that is not inside the layer that I want to rotate)
I prefer to do this without changing the anchor point, because if I don't get something wrong every time I change the anchor point it also changes the position of the layer.
I tried something like this, but that didn't work:
[UIImageView beginAnimations:nil context:nil];
CATransform3D rotationTransform = CATransform3DIdentity;
rotationTransform = CATransform3DTranslate(rotationTransform, 0.0, -100.0, 0.0);
rotationTransform = CATransform3DRotate(rotationTransform, DegreesToRadians(180),
0.0, 0.0, 1.0);
rotationTransform = CATransform3DTranslate(rotationTransform, 0.0, 100.0, 0.0)
shape1.layer.transform = rotationTransform;
[UIImageView commitAnimations];
It appears that the rotation axis rotates during rotation.
source
share