UIView
サブクラス内で、ビューの本来のサイズを変更する必要があるアニメーションの一部をオーケストレーションしようとしています。NSLayoutConstraintのアニメーション化に固有のサイズを変更する際に問題が発生する
CATransaction
完了ブロックでは、サイズの変更を反映するためにinvalidateIntrinsicContentSize()
を呼び出し、制約をアニメーション化した直後に呼び出します。
self.layoutIfNeeded()
UIView.animateWithDuration(2) {
NSLayoutConstraint.deactivateConstraints(oldConstraints)
NSLayoutConstraint.activateConstraints(newConstraints)
self.layoutIfNeeded()
}
しかし、奇妙なことがdeactivateConstraints
とactivateConstraints
方法に提供制約と一緒に、たまたま、私はまた、ビューのサイズが同じ期間に沿ってアニメーションされている参照してください。
これは実際に動作しているビデオです。
https://www.youtube.com/watch?v=OgM378Wryd0
ここで問題の図です。
私の意図はすぐにビューのサイズを変更し、位置決め制約と一緒にそれをアニメーション化しないことです。
animateWithDurationメソッドを使用してアニメーション化しないようにする理由は何ですか? –
私の意図は、サイズではなくポジションを動かすことです。 –