我想使按鈕逆時針旋轉,但由於一些奇怪的原因,它順時針旋轉。我知道以前的做法是通過M_PI
,但它已被快速3棄用,並替換爲CGFloat.pi
。我試過了:使用CGAffineTransform swift 3語法使按鈕逆時針旋轉?
self.loginButton.transform = CGAffineTransform(rotationAngle: -CGFloat.pi)
但它仍然順時針移動。任何想法是什麼語法逆時針移動?
我想使按鈕逆時針旋轉,但由於一些奇怪的原因,它順時針旋轉。我知道以前的做法是通過M_PI
,但它已被快速3棄用,並替換爲CGFloat.pi
。我試過了:使用CGAffineTransform swift 3語法使按鈕逆時針旋轉?
self.loginButton.transform = CGAffineTransform(rotationAngle: -CGFloat.pi)
但它仍然順時針移動。任何想法是什麼語法逆時針移動?
動畫將始終採用最短的方式。因此CGFloat.pi
和-CGFloat.pi
動畫在相同的位置。
由於我們需要逆時針旋轉,所以我們通過使用這個-(CGFloat.pi * 0.999)
強制使它成爲最短的方式。
UIView.animate(withDuration: 1.0, animations:{
self.loginButton.transform = CGAffineTransform(rotationAngle:-(CGFloat.pi * 0.999))
})
沒有比這個使用CABasicAnimation
爲逆時針旋轉一個更好的解決方案。
let anticlockAnimation = CABasicAnimation(keyPath: "transform.rotation")
anticlockAnimation.fromValue = CGFloat.pi
anticlockAnimation.toValue = 0
anticlockAnimation.isAdditive = true
anticlockAnimation.duration = 1.0
self.loginButton.layer.add(anticlockAnimation, forKey: "rotate")
self.loginButton.transform = CGAffineTransform(rotationAngle: -CGFloat.pi)
看到這裏的討論:http://stackoverflow.com/questions/21761184/catransaction-rotate-layer-360-degree-strange您需要使用核心動畫。 – matt