web-dev-qa-db-fra.com

Mettre à jour la propriété constante d'une contrainte par programme dans Swift?

Je souhaite animer un objet, je déclare donc une contrainte et l'ajoute à la vue. Je mets ensuite à jour la propriété constant de la contrainte dans une animation UIView. Pourquoi ce code ne déplace-t-il pas l'objet?

UIView.animateWithDuration(1, animations: {
     myConstraint.constant = 0   
     self.view.updateConstraints(myConstraint)
})
37
Cesare

Pour déclarer une animation, vous ne pouvez pas redéfinir la contrainte et appeler updateConstraints. Vous êtes censé changer le constant de votre contrainte et suivre le format ci-dessous:

self.view.layoutIfNeeded()
UIView.animateWithDuration(1, animations: {
    self.sampleConstraint.constant = 20
    self.view.layoutIfNeeded()
})
86
duan