0
我在swift中使用加速度計的代碼,但是當條件爲真時,我需要爲視圖設置動畫效果,但不是動畫效果。在Swift中使用加速度計
我該怎麼做動畫。由於
import CoreMotion
lazy var motionManager = CMMotionManager()
override func viewDidAppear(animated: Bool) {
super.viewDidLoad()
if motionManager.accelerometerAvailable{
let queue = NSOperationQueue()
motionManager.startAccelerometerUpdatesToQueue(queue, withHandler:
{(data: CMAccelerometerData!, error: NSError!) in
if data.acceleration.x <= -0.22 && data.acceleration.x >= -0.24 {
UIView.animateWithDuration(1 ,delay: 0, options: .CurveEaseInOut | .AllowUserInteraction,
animations: {
self.text.frame = CGRectMake(100, 0, 42,21)
},
completion:{ finished in
})
}
}
)
} else {
println("Accelerometer is not available")
}
}
目前還不清楚你問什麼,但'viewDidLoad'肯定不會做任何動畫正確的位置。在這一點上,該視圖甚至不在屏幕上。 – Paulw11 2015-03-08 21:17:24
我試過了。在viewDidAppear和不起作用。我能做什麼?謝謝。 – Fabio 2015-03-08 22:24:54
我沒有注意到你正在註冊一個回調處理程序。您應該在主隊列上調用動畫,因爲您可能會從後臺線程調用該動畫。另外,設置一個斷點來確認你的處理程序正在被調用,並且測試在處理程序之外運行你的動畫,以確認代碼不需要你想要的東西 – Paulw11 2015-03-08 22:31:53