Swift:在iOS8中旋转斜一个按钮?

Swift: rotate oblique a button in iOS8?

假设我的 ViewController 上有一个或多个 100*50 的矩形按钮。

import UIKit

class ViewController: UIViewController {

    override func viewDidLoad() {
        super.viewDidLoad()
        // Do any additional setup after loading the view, typically from a nib. 

    }

    override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
        // Dispose of any resources that can be recreated.
    }

    @IBAction func myButton(sender: UIButton) {
    }

}

通常我把我的图形图像作为他们的图像。然后我应用自动布局。

但是!我需要它们是倾斜的而不是水平的,I.E.如果你有一个正方形,我需要将它旋转成菱形(45°),它是一样的。 我知道通过界面生成器是不可能的。如何通过代码制作?

也许我应该使用 CGAffineTransformRotate 或 RotateTranform 但我真的不知道如何开始

最好的方法是旋转视图层,CGAffineTransformMakeTranslation 指示层中旋转的点,记住层从 (0,0) 到 (1.1),所以中间是 (0.5, 0.5 ):

    var transform = CGAffineTransformMakeTranslation(0.5, 0.5)
    var angle = CGFloat(M_PI / 2.0) //90 degress rotation
    transform = CGAffineTransformRotate(transform, angle)
    button.transform = transform

    button.layer.rasterizationScale = UIScreen.mainScreen().scale
    button.layer.shouldRasterize = true

    button.setNeedsDisplay()