How to programmatically rotate the view by 180 degrees on iOS?

16,717

Solution 1

Should be possible by using CGAffineTransform

Quote from this question, this should do the trick:

CGFloat radians = atan2f(yourView.transform.b, yourView.transform.a);
CGFloat degrees = radians * (180 / M_PI);
CGAffineTransform transform = CGAffineTransformMakeRotation((90 + degrees) * M_PI/180);
yourView.transform = transform;

Solution 2

As ’CGAffineTransformRotate’ uses radians as its unit of measure, and 180 degrees is the same as PI, instead of the math provided in other answers you can simply do:

view.transform = CGAffineTransformRotate(view.transform, M_PI);

Swift 3:

view.transform = view.transform.rotated(by: .pi)

If you plan on doing a lot of transforms, it's probably best to read up on radians, so you understand what is going on.

Solution 3

Swift 4:

self.view.transform = CGAffineTransform(rotationAngle: .pi);

And a COMMENT (I evidently don't have enough points to enter my comment on his/her answer) for Benjamin Mayo or vtcajones answer of:

view.transform = view.transform.rotated(by: .pi)

This will work the first time, but the next time it is called it will rotate the view again, back to the original rotation, which is probably not what you want. It would be safer to set the transform value exactly each time.

Solution 4

Simple solution:

view.transform = CGAffineTransformMakeRotation(degrees*M_PI/180);

Solution 5

In Swift 3 :

let rotationDegrees =  180.0
let rotationAngle = CGFloat(rotationDegrees * M_PI / 180.0)
view.transform = CGAffineTransform(rotationAngle: rotationAngle)
Share:
16,717
meetpd
Author by

meetpd

I am the CEO of Upnexo Technologies Pvt. Ltd. We are a Product and Content Development Company. Our list of sites include: Upnexo.com HalfPantHippo.com TopVPN.Review SplitScreenApp.com ReviewRoller.com

Updated on June 08, 2022

Comments

  • meetpd
    meetpd almost 2 years

    How to programmatically rotate the view by 180 degrees in my iPhone App?

  • Eliza Wilson
    Eliza Wilson about 10 years
    This rotates it 90 degrees. If you want it to rotate it by 180 degrees, they last line should be CGAffineTransformMakeRotation(( 180 + degrees) * M_PI/180) instead of 90