将UILabel旋转90度的正确方法是什么?

时间:2015-02-04 02:41:19

标签: swift rotation

我试图在UIView内旋转UILabel 90度。

以下代码片段是尝试在Swift中编写可以执行此操作的内容:

  //  #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)

我遇到了几个编译器错误:
1)尝试将弧度转换为角度遇到双倍 - >浮动转换问题,因此,不得不使用' 3.14' vs' M_Pi'。
2)尝试在UILabel上进行实际转换时出现以下错误: enter image description here

将UILabel旋转90度的正确方法是什么?

<小时/> 好的......我得到了转换语法但是......
这是原始图像:
enter image description here

我的目标是定位&#39; TUE&#39;垂直于电池的左侧。
我最初尝试了90度反向旋转:

    self.dayLabel.transform = CGAffineTransformMakeRotation(-90)

得到以下内容:
enter image description here

我试图改变学位,但不能获得稳固的垂直位置。
我/我可以更严格控制转换吗?

9 个答案:

答案 0 :(得分:44)

Swift 3版本:

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

答案 1 :(得分:17)

尝试这种方式:

  if (param != 0) {
     args(1) match {
          case "+" => val resRDD = sv.apply(sRDD, (x => x + param):Float => Float)
          case "-" => val resRDD = sv.apply(sRDD, (x => x - param):Float => Float)
          case "*" => val resRDD = sv.apply(sRDD, (x => x * param):Float => Float)
          case "/" => val resRDD = sv.apply(sRDD, (x => x / param):Float => Float)
          case _ => "error"
 }
}

答案 2 :(得分:8)

self.dayLabel.transform = CGAffineTransformMakeRotation(M_PI_2)

是执行90度转换的正确方法,其中M_PI_2是90度的预定义弧度值。

答案 3 :(得分:4)

使用度数值的Swift 4解:

let degrees : Double = -90; //the value in degrees
self.dayLabel.transform = CGAffineTransform(rotationAngle: CGFloat(degrees * .pi/180))

答案 4 :(得分:2)

UIView.transformproperty的{​​{1}}而不是UIView。 请尝试设置function

了解更多信息 https://developer.apple.com/library/ios/documentation/UIKit/Reference/UIView_Class/#//apple_ref/occ/instp/UIView/transform

答案 5 :(得分:2)

  

迅捷4

@IBOutlet weak var ourView: UIView!

    ourView.transform = CGAffineTransform(rotationAngle: CGFloat(Double(-45) * .pi/180))
//i gave it -45 degree.

enter image description here

答案 6 :(得分:0)

dayLabel.transform = dayLabel.transform.rotated(by: .pi / 2)

答案 7 :(得分:0)

func rotate(button: UIButton) {
let angles = [CGFloat(Double(270) * .pi/180),
              CGFloat(Double(180) * .pi/180),
              CGFloat(Double(90) * .pi/180),
              CGFloat(Double(0) * .pi/180)
]
for i in 0..<4 {
    UIView.animate(withDuration: 0.125, delay: 0.125 * Double(i), animations: {
        button.transform = CGAffineTransform(rotationAngle: angles[i])
    }, completion: nil)
}

答案 8 :(得分:-6)

显然我已经调整到计数器度数的1/100以使其垂直微调:

self.dayLabel.transform = CGAffineTransformMakeRotation(-89.55)

结果:
enter image description here