タップすると幅が広がるようにしたいものがありますUITextField
。制約を設定し、左側の制約の優先度が、右側でアニメーション化しようとしている制約の優先度よりも低いことを確認しました。
私が使用しようとしているコードは次のとおりです。
// move the input box
UIView.animateWithDuration(10.5, animations: {
self.nameInputConstraint.constant = 8
}, completion: {
(value: Bool) in
println(">>> move const")
})
これは機能しますが、瞬時に行われるようで、動きがないようです。何かを見逃していないか確認するために 10 秒に設定してみましたが、結果は同じでした。
nameInputConstraint
IB から自分のクラスに接続するためにドラッグして制御する制約の名前です。
ベストアンサー1
まず制約を変更し、次に更新をアニメーション化する必要があります。
これはスーパービューで行う必要があります。
self.nameInputConstraint.constant = 8
スイフト2
UIView.animateWithDuration(0.5) {
self.view.layoutIfNeeded()
}
スイフト3、4、5
UIView.animate(withDuration: 0.5) {
self.view.layoutIfNeeded()
}