iOS動畫旋轉是對View的操作,而不是對layer的操作,關鍵點是需要設置錨點(anchorPoint),旋轉軸和旋轉度數(shù)
func spinAndTransform() {
// 1
layer.anchorPoint = CGPointMake(0.5, 0.6)
// 2
var rotationAnimation: CABasicAnimation = CABasicAnimation(keyPath: "transform.rotation.z")
rotationAnimation.toValue = CGFloat(M_PI * 2.0)
rotationAnimation.duration = 0.45
rotationAnimation.removedOnCompletion = true
layer.addAnimation(rotationAnimation, forKey: nil)
}
注意這里的anchorPoint取值是相對于旋轉的view而言,取值0-1,也就是說錨點位于左上角,取值為(0,0),錨點位于右下角,取值為(1,1),其他點則介于這0-1之間,然后是設置旋轉軸,這里是圍繞z軸旋轉,也就是和屏幕垂直的軸,設置旋轉角度為360度,也就是2*PI。