如何在iOS中对角移动对象?

时间:2015-04-18 20:29:40

标签: ios swift

目标

我需要我的应用程序将对角线从屏幕中心移动到左下角。

代码

为此,我正在制作约束动画。

UIView.animateWithDuration(10, delay: 0, options: UIViewAnimationOptions.Repeat, animations: {
        constraintBottomSpace.constant -= 10
        constraintLeadingSpace.constant -= 10

        self.view.layoutIfNeeded()
        }, completion: {(finished: Bool) in})
}

问题

图像不移动。如何对角移动对象?

2 个答案:

答案 0 :(得分:1)

我认为您需要设置这样的约束常量:

constraintBottomSpace.constant = 0
constraintLeadingSpace.constant = 0

使用 - = 10将它只移动10个像素到角落。

或者尝试没有这样的选项:

UIView.animateWithDuration(5, animations: { () -> Void in

     constraintBottomSpace.constant = 0
     constraintLeadingSpace.constant = 0
}) { (finished) -> Void in

}

答案 1 :(得分:1)

修改约束并在动画块之前调用setNeedsUpdateConstraints()

块中调用layoutIfNeeded()

例如:

func animateToCorner() {
    constraintBottomSpace.constant -= 10
    constraintLeadingSpace.constant -= 10

    view.setNeedsUpdateConstraints()

    UIView.animateWithDuration(10, animations: { () -> Void in
        self.view.layoutIfNeeded()
    })
}