问题
I want to animate an object, so I declare a constraint and add it to the view. I then update the constant
property of the constraint inside an UIView
animation. Why doesn't this code move the object?
UIView.animateWithDuration(1, animations: {
myConstraint.constant = 0
self.view.updateConstraints(myConstraint)
})
回答1:
In order to declare an animation, you cannot re-define the constraint and call updateConstraints
. You are supposed to change the constant
of your constraint and follow the format below:
self.view.layoutIfNeeded()
UIView.animateWithDuration(1, animations: {
self.sampleConstraint.constant = 20
self.view.layoutIfNeeded()
})
来源:https://stackoverflow.com/questions/28127259/update-the-constant-property-of-a-constraint-programmatically-in-swift