2015-06-19 41 views
2

我試圖旋轉和圖像,以視覺顯示的方向,像一個指南針的用戶。所以我試圖向一個函數提供一個角度來在角度的方向上旋轉圖像,但是圖像只是旋轉失控,當它最終停止時似乎不正確。每次代表發生火災時都會調用此函數:locationManager(manager: CLLocationManager!, didUpdateHeading newHeading: CLHeading!)。有人能指引我朝着正確的方向嗎?如何在Swift中基於角度旋轉圖像?

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

我想你指定'headingAngle'度,但'CGAffineTransformMakeRotation'需要弧度。 –

+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))