What's the correct way to rotate a UILabel 90 degrees?

Frederick C. Lee picture Frederick C. Lee · Feb 4, 2015 · Viewed 41.5k times · Source

I'm attempting to rotate a UILabel 90 degrees within a UIView.

The following snippet is an attempt to write something in Swift that can do that:

  //  #define DEGREES_TO_RADIANS(x) (x * M_PI/180.0)

    let angle:CGFloat = (90.0 * 3.14/180.0) as CGFloat
    let rotation = CGAffineTransformMakeRotation(angle)

    self.dayLabel.transform(rotation)

I encountered couple compiler errors:
1) Attempting to convert radians to an angle encountered a double --> float conversion problem and hence, had to use '3.14' vs 'M_Pi'.
2) I got the following error when attempting to actually doing the transformation on UILabel: enter image description here

What's the correct way to rotate a UILabel 90 degrees?


Okay... I got the transform syntax but...
Here's the original image:
enter image description here

My goal is to position 'TUE' vertically against the left side of the cell.
I originally tried a 90 deg counter rotation:

    self.dayLabel.transform = CGAffineTransformMakeRotation(-90)

And got the following:
enter image description here

I tried to vary the degrees but can't get a solid vertical position.
I do/can I have tighter control over the transformation?

Answer

Mette picture Mette · Dec 23, 2016

Below code works in Swift 3, 4 and 5:

dayLabel.transform = CGAffineTransform(rotationAngle: .pi/2)