Basically, I’m rotating a layer about a point as :
CATransform3D transform = CATransform3DIdentity;
transform.m34 = 1.0 / -500;
transform = CATransform3DTranslate(transform, rotationPoint.x-center.x, rotationPoint.y-center.y, 0.0);
transform = CATransform3DRotate(transform, (rotationAngleFor) * M_PI / 180.0f, 0.0, 1.0, 0);
transform = CATransform3DTranslate(transform, center.x-rotationPoint.x, center.y-rotationPoint.y, 0.0);
I also create a layer, add it to a bigger layer and then apply the transform to it:
[self.layer addSublayer:myLayer];
myLayer.transform = transform;
How to animate this?
Note- Putting this in a UIView animation block doesn’t work.
Edit: As @DuncanC pointed out my description did not match the actual code.
You can use a
CABasicAnimationthat is added to the layer as follows.This animation performs a continuous change of the
transformproperty of the layer from the original value of thetransformproperty of the layer to thenewTransformtransformation. The change takes 10 seconds.