高さの制約を変更した後、アニメーションに問題があります。スクリーンショットでは、初期値が120.0であることがわかります。 アニメーションは機能しますが、アニメーション中ではなく、2番目のビュー(青いもの)からの制約の更新が直接行われます。これは、2番目のビューが直接上にジャンプすることを意味します。次のコードで 、私は高さ制約の変更をアニメーション化します:iOSアニメーションの高さの制約の問題
UIView.animate(withDuration: 3.0, animations: {
self.heightConstraint?.constant = 0.0
self.myLabel.alpha = 0.0
self.layoutIfNeeded()
})
誰もがなぜ知っていますか?
アニメーションブロックの外側に制約を設定し、アニメーションブロックで「layoutIfNeeded」を呼び出します。 – Paulw11
これは動作しません。私は同じ行動を経験する。私は、私の2つのビューもスクロール表示であると言う必要があります。これが理由だろうか? –
だから私はエラーが見つかりました。問題は、私はビューをサブクラス化し、そこにアニメーションを入れたことです。 self.layoutIfNeeded()の代わりにself.superview ?layoutIfNeeded()を呼び出す必要があります –