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()
假设我的 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()