如何在Swift中基于角度旋转图像?

时间:2015-06-19 17:13:12

标签: ios swift animation ios8 core-animation

我正在尝试旋转和图像以直观地向用户显示指南针的方向。因此,我试图将角度提供给一个函数,以便在角度方向上旋转图像,但是图像只是旋转失控,并且在最终停止时似乎不正确。每次代理触发时都会调用此函数:locationManager(manager: CLLocationManager!, didUpdateHeading newHeading: CLHeading!)。有人能指出我正确的方向吗?

func headingDidChange(headingAngle: Double) {
    UIView.animateWithDuration(1.0, animations: {
        self.compassImage.transform = CGAffineTransformMakeRotation(CGFloat(headingAngle))
    })
}

1 个答案:

答案 0 :(得分:4)

在委托方法中尝试以下代码来旋转图像。

    let oldRad:Float = 1.259374
    let newRad:Float = 1.239832

    let theAnimation = CABasicAnimation(keyPath: "transform.rotation")

    theAnimation.fromValue = NSNumber(float: oldRad)
    theAnimation.toValue = NSNumber(float: newRad)

    theAnimation.duration = 0.2

    self.compassImage!.layer.addAnimation(theAnimation, forKey: "animateMyRotation")

    self.compassImage!.transform = CGAffineTransformMakeRotation(CGFloat(newRad))