动画期间UIImageView的位置

时间:2017-07-20 09:44:23

标签: ios swift animation uiimageview

今天我没有""拍摄游戏 我在动画期间检查SpriteKit位置时遇到问题。

我尝试过的代码:

UIImageView

用于移动我的船按钮(左和右)以及幻灯片动画的功能@IBAction func MoveTDButton(_ sender: UIButton) { animationForPlane = UIViewPropertyAnimator(duration: 0.5, curve: .easeIn, animations: { if sender.tag == 1 { self.ship.center.x = sender.frame.origin.x + sender.frame.size.width - (self.ship.frame.size.width / 2) self.ship.image = #imageLiteral(resourceName: "shipright") print(self.ship.center.x) }else{ self.ship.center.x = sender.frame.origin.x + (self.ship.frame.size.width / 2) self.ship.image = #imageLiteral(resourceName: "shipleft") print(self.ship.center.x) } }) animationForPlane.startAnimation() } private func autoshoot(_ imgShip :UIImageView, _ imgBullet :UIImageView){ var t: TimeInterval! t = 0.2 //var hauteur = self.view.frame.maxY if let duration = t { UIView.animate(withDuration: duration, animations: { imgBullet.center.y = 10 imgBullet.center.x = self.ship.center.x }, completion: { (true) in imgBullet.center.x = self.ship.center.x imgBullet.center.y = imgShip.center.y //checkPosEnemy(img, hauteur: hauteur) self.autoshoot(imgShip, imgBullet) }) } } 。 并且,自动拍摄功能拍摄^^

问题:

当我点击按钮移动我的船时,位置设置在动画结束时而不是在动画期间。 所以我的子弹不是在船的位置拍摄,而是在动画结束时。

1 个答案:

答案 0 :(得分:0)

如果您使用SpriteKit或类似的框架会更好。

但是要回答您的问题,您可以尝试:

imgBullet.center.x = self.ship.layer.presentation()!.position 代替 imgBullet.center.x = self.ship.center.x