James Beith
James Beith

Reputation: 5761

Rotate a UIImage or UIView to a particular angle, NOT an amount of angle

Objective-C for iOS.

How do I rotate an image or view TO a particular angle. I have tried the two methods below, but both rotate the AMOUNT of angle, not TO the angle. Basically I would like to call a method to rotate to 90' and then say call again of 180', and the image/view to finish at 180', NOT an addition of them both (270') which is what happens if I use either of the methods below.

#define degreesToRadians(degrees) (M_PI * degrees / 180.0)

myImage.transform = CGAffineTransformMakeRotation(degreesToRadians(90));

myImage.transform = CGAffineTransformRotate(myImage.transform, degreesToRadians(90));

Many thanks!

Upvotes: 5

Views: 6797

Answers (2)

ricky.tribbia
ricky.tribbia

Reputation: 134

ohho's answer can be useful if you haven't to do animation. I found useful this trick:

[UIView animateWithDuration:0.2 animations:^{
            self.compassImgView.transform = CGAffineTransformRotate(CGAffineTransformIdentity, radians);
        }];

Upvotes: 1

ohho
ohho

Reputation: 51911

Reset by

.transform = CGAffineTransformIdentity

before the other transforms...

Upvotes: 6

Related Questions