CGAffineTransform恢复旋转方向

时间:2017-03-30 16:48:49

标签: swift swift3

我使用以下代码旋转360º一个UIButton:

Compile with .NET native tool chain

问题是它从左向右旋转,我想反转方向。 我尝试过使用-M_PI或-180等组合,但没有成功。 我做错了什么?

1 个答案:

答案 0 :(得分:9)

您可以应用负变换来反转方向:

self.btn.transform = CGAffineTransform(rotationAngle: -0.999*CGFloat.pi)

用以下方法撤消它:

self.btn.transform = CGAffineTransform.identity

请记住,变换会改变视图,但不会改变实际对象。您不必“撤消”它,只需将其替换即可。

这是一些简单的工作游乐场代码,逆时针显示动画:

import UIKit
import PlaygroundSupport

let view:UIView = UIView(frame: CGRect(x: 0, y: 0, width: 200, height: 200))
view.backgroundColor = UIColor.red
PlaygroundPage.current.liveView = view

let button = UIView(frame: CGRect(x: 50, y: 50, width: 100, height: 50))

button.backgroundColor = UIColor.white
view.addSubview(button)

UIView.animateKeyframes(withDuration: 2.0, delay: 0.0, options: .repeat, animations: {
    let rotation = -0.999*CGFloat.pi
    button.transform = CGAffineTransform(rotationAngle: rotation)
    print(rotation)
}, completion: nil)

结果如下:

animation