3つのUIViewが重ねて表示されるViewControllerがあります。積み重ねると、あるビューの一番下に、次のビューが始まります。私は、各ビューの間に定数= 0を設定しました。アプリケーションが開始されるとき、viewDidLoad
に、2つのトップビューの間に垂直制約に500を追加するので、下の2つのビューは以下のようにプッシュダウンされます。アニメーション中にUIViewが正しく動かない
billViewBottomConstraint.constant = 500
私は、右の上面図の下に終わるまで後退下の2つのビューをアニメーション化するには、次の関数を呼び出します。
func animate()
{
self.billViewBottomConstraint.constant = 0
UIView.animate(withDuration: 2.0) {
self.view.layoutIfNeeded()
}
}
ビューは確かに私が望むよう正しい位置にアニメーションではなく、 。ビューがアニメーション化される前のように見え、アニメーションが呼び出されたときに外側に拡張され、アニメーションが正しい位置に向かって内側に収縮します。
解決策は試しましたが、アニメーションは発生しませんでした。すべてのビューが最終的な場所にすぐに表示されます。アニメーションブロックを呼び出さずに 'billViewBottomConstraint.constant = 500'とそれに続いて' self.view.layoutIfNeeded() 'を実行すると、ビューは正しい位置に表示され、500だけシフトします。アニメーションブロック内で何が起こっているのかはわかりませんこの。 – Brosef
更新された回答を確認してください。 – the4kman