特定のアクションでフレームから完全にアニメーション化するネストされたビューがあります。これを行うには、アニメーション ブロックの制約の定数を更新します。
[UIView animateWithDuration:.5 animations:^{
self.categoriesTableViewConstraintToBottom.constant = [UIScreen mainScreen].bounds.size.height;
self.categoriesTableViewConstraintToTop.constant = [UIScreen mainScreen].bounds.size.height;
[self.view layoutSubviews];
}, completion: nil];
基本的に、2 つの制約は親ビュー (全画面表示) の上部と下部に関連付けるだけです。明らかに、これらの制約の 1 つを変更せずに他の制約を変更することはできません。そうしないと、レイアウトが満足できなくなります。
ここで奇妙なのは、上に示した順序でこれらを変更する必要があることです。定数を他の順序で更新すると、「満足」エラーがスローされます。
そう:
- なぜ順番が重要なのですか?
- すべての制約を更新するまで競合する場合、技術的に制約を変更しながら削除する必要がありますか? (またはを待つのではなく、何らかの理由ですぐに評価されます
layoutSubviews
かlayoutIfNeeded
?