Swift:如何为UIButton和UILabel旋转文本?
如何为UIButton和UILabel旋转文本?  90度,180度 
注意:在将其标记为重复项之前,我故意将我的问题build模为这一个的Swift版本: Objective C:如何为UIButton和UILabel旋转文本?
我正在以类似的格式回答我的答案 。
这是原始的标签:

顺时针旋转90度
 yourLabelName.transform = CGAffineTransform(rotationAngle: CGFloat.pi / 2) 

旋转180度:
 yourLabelName.transform = CGAffineTransform(rotationAngle: CGFloat.pi) 

逆时针旋转90度:
 yourLabelName.transform = CGAffineTransform(rotationAngle: -CGFloat.pi / 2) 

做同样的事情来旋转一个button。 值得庆幸的是触摸事件也被旋转了,所以button在新的边界仍然是可点击的,而不需要做任何额外的事情。
 yourButtonName.transform = CGAffineTransform(rotationAngle: CGFloat.pi / 2) 
笔记:
CGAffineTransform的文档
 基本格式是CGAffineTransform(rotationAngle: CGFloat)其中rotationAngle是弧度,而不是度数。 
 有一个整圆(360度)有2π弧度。  Swift包含有用的常量CGFloat.pi 。 
-   CGFloat.pi=π= 180度
-   CGFloat.pi / 2=π/ 2 = 90度
自动布局:
 自动布局不适用于旋转的视图。  (请参阅“ 框架与边界 ”以解释原因。)通过创build自定义视图可以解决此问题。  这个答案显示了如何为一个UITextView做,但它是一个标签或button的基本概念。  (请注意,您将不得不删除该答案中的CGAffineTransformScale行,因为您不需要镜像文本。) 
有关
- 如何在CALayer上进行转换?
- 如何在Swift中应用多个转换
- iOS中的CTM变换与仿射变换(用于平移,旋转,缩放)
迅速
顺时针旋转90度
  var rotateLabel: UILabel = UILabel(frame: CGRectMake(100, 0, 28, 159)) rotateLabel.textAlignment = .Right rotateLabel.text = "Hello!" self.view.addSubview(rotateLabel) rotateLabel.transform = CGAffineTransformMakeRotation(CGFloat(M_PI_2)) rotateLabel.frame = CGRectMake(100, 0, 28, 159) 
逆时针旋转90度:
  var rotateLabel: UILabel = UILabel(frame: CGRectMake(100, 0, 28, 159)) rotateLabel.textAlignment = .Right rotateLabel.text = "Hello!" self.view.addSubview(rotateLabel) rotateLabel.transform = CGAffineTransformMakeRotation(CGFloat(-M_PI_2)) rotateLabel.frame = CGRectMake(100, 0, 28, 159) 
改编自Ananthu R Krishnan的答案以适应Swift 3.1。
逆时针旋转90度:
 let rotateLabel: UILabel = UILabel(frame: CGRect(x:15, y:66, width:28, height:159)) rotateLabel.textAlignment = .right rotateLabel.text = "TEXT" self.view.addSubview(rotateLabel) rotateLabel.transform = CGAffineTransform(rotationAngle: CGFloat(-(Double.pi / 2.0))) rotateLabel.frame = CGRect(x:15, y:66, width:28, height:159)