0
我想向一組按鈕添加重力,以便在設備傾斜時它們圍繞屏幕移動。物體會移動,只要設備始終處於運動狀態,它們就會繼續移動,但一旦設備至少停留1秒鐘,設備就會完全停止移動,並且即使在此之後移動設備,也會粘住邊緣。對象停止移動 - UIDynamics和Swift iOS
這裏是我的代碼:
在ViewController.Swift
var animator: UIDynamicAnimator!
var gravity: UIGravityBehavior!
var collision: UICollisionBehavior!
var motionManager = CMMotionManager()
var motionQueue = NSOperationQueue()
let itemBehavior = UIDynamicItemBehavior()
這兩個被稱爲詮釋他的viewDidLoad()
func addBehaviours(){
animator = UIDynamicAnimator(referenceView: view)
gravity = UIGravityBehavior(items: [emailButton,facebookButton])
animator.addBehavior(gravity)
itemBehavior.friction = 0.1;
itemBehavior.elasticity = 0.5
animator?.addBehavior(itemBehavior)
collision = UICollisionBehavior(items: [emailButton, facebookButton])
collision.translatesReferenceBoundsIntoBoundary = true
animator.addBehavior(collision)
itemBehavior.addItem(emailButton)
itemBehavior.addItem(facebookButton)
}
func updateMotion() {
motionManager.startDeviceMotionUpdatesToQueue(motionQueue) { (motion: CMDeviceMotion?, error: NSError?) -> Void in
self.gravity.gravityDirection = CGVectorMake(CGFloat((motion?.gravity.x)!), -CGFloat((motion?.gravity.y)!))
}
}
@matt我看過那個問題,沒有答案。我可以降低方向改變的速度,但我看了一個在線教程,它在那裏工作得很好。我測試過,動畫製作者停止在那個停止移動的位置,但在那之後繼續運行。 –
@matt我剛剛給了它,並沒有奏效。我也嘗試重新啓動動畫師,但無法找到一種方法來做到這一點。我也注意到,即使設備是平坦的並且不移動,也會發生這種情況。它只有一次動畫製作者停止了,之後不再有效 –