iOS Animate Rotation at an Angle

animation, cabasicanimation, ios, rotation, transform

Solution

First, you should see the link below which explains that the differences between "frame" and "bounds". UIView frame, bounds and center

And now, here is my answer.

/* add the 4 lines below */
self.transform = CGAffineTransformMakeRotation(M_PI_4);
self.layer.bounds = CGRectMake(0.0f, 0.0f, 60.0f, 200.0f);
self.layer.position = CGPointMake(150.0f, 300.0f);

CABasicAnimation* animation = [CABasicAnimation
                               animationWithKeyPath:@"transform.rotation.y"];
animation.fromValue = @(0);
animation.toValue = @(2 * M_PI);
animation.duration = 1;

[self.layer addAnimation:animation forKey:@"rotation"];

Problem

I'm trying to do a 360 spin of a view but at a 45 degree tilt. Like this I can't figure out for to do it. So far I've managed this ``` CABasicAnimation* animation = [CABasicAnimation animationWithKeyPath:@"transform.rotation.y"]; animation.fromValue = @(0); animation.toValue = @(2 * M_PI); animation.duration = 1; [self.layer addAnimation:animation forKey:@"rotation"]; ``` Which spins it on it's y axis, but what I want is for this Y axis to be tilted 45 degree before it's spun.

Original source

Related problems