2017-04-12 18 views
1

私はplayerOneをpoint2にアニメーションで移動できるようにしたいが、移動するとplayerOneの左上隅からpoint2の左上隅に移動する。私は、playerOneを左上隅の代わりに中央からpoint2の中央に移動する方法があるかどうか疑問に思っていました。代わりに、この左上の代わりに中間から移動する

self.playerOne.frame.origin.x = self.point2.frame.origin.x-self.playerOne.frame.height/2 

@IBAction func moveToPoint2(_ sender: Any) { 
    playerOnePosition = 2 
    UIView.animate(withDuration: 1.25, delay: 0, options: .curveLinear, animations: { 
     self.playerOne.frame.origin.x = self.point2.frame.origin.x-self.playerOne.frame.height/2 
    }, completion: nil) 
    pickQuestion() 
} 

答えて

1

をお試しくださいビューのcenter(あなたの場合はplayerOne)を編集する必要があります。

@IBAction func moveToPoint2(_ sender: Any) { 
    playerOnePosition = 2 
    UIView.animate(withDuration: 1.25, delay: 0, options: .curveLinear, animations: { 
     self.playerOne.frame.center = self.point2.center 
    }, completion: nil) 
    pickQuestion() 
} 
+0

ありがとう:

どういうわけか、それはのようになります!中心値を完全に忘れてしまった! – Username

+0

喜んでお手伝いします –

0

現在何が起こっているかの理由は、あなたが途中からそれを動かすために、self.playerOne.frame.origin.xの値を編集しているということです、この

self.playerOne.frame = CGRect(x: self.point2.frame.origin.x, y: self.point2.frame.origin.y, width: self.playerOne.frame.size.width, height: self.playerOne.frame.size.height) 
関連する問題