目标
我需要我的应用程序将对角线从屏幕中心移动到左下角。
代码
为此,我正在制作约束动画。
UIView.animateWithDuration(10, delay: 0, options: UIViewAnimationOptions.Repeat, animations: {
constraintBottomSpace.constant -= 10
constraintLeadingSpace.constant -= 10
self.view.layoutIfNeeded()
}, completion: {(finished: Bool) in})
}
问题
图像不移动。如何对角移动对象?
答案 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()
})
}