アニメーションは常に最短の方法で行われます。したがって、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