我希望能够通过动画将playerOne移到point2,但是当它移动时,它会从playerOne的左上角移到point2的左上角。我想知道是否有办法将PlayerOne从中间而不是左上角移到point2的中间。

@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()
}

最佳答案

当前发生的原因是,您正在编辑self.playerOne.frame.origin.x的值,要从中间移动它,您应该编辑视图的 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()
}

关于ios - 从中间而不是左上方移动,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/43366426/

10-14 21:50