web-dev-qa-db-ja.com

Swiftでプログラムで制約の定数プロパティを更新しますか?

オブジェクトをアニメートしたいので、制約を宣言してビューに追加します。次に、constantアニメーション内の制約のUIViewプロパティを更新します。なぜこのコードはオブジェクトを動かさないのですか?

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

アニメーションを宣言するために、制約を再定義してupdateConstraintsを呼び出すことはできません。制約のconstantを変更し、以下の形式に従う必要があります。

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