1. ホーム
  2. ios

[解決済み] ビューを削除すると制約がどうなるか

2022-08-13 05:37:39

質問

簡単な質問なのですが、ドキュメントに情報がありませんでした。

ビューがビュー階層から削除された場合(または別のビューに移動した場合)、レイアウト制約はどうなりますか?

例えば、コンテナ C というサブビューがあるとします。 AB . コンテナ C はいくつかの制約を保持しています。そして [A removeFromSuperview] . の制約はどうなるのでしょうか? A ?

では AC に戻すのですか?

どのように解決するのですか?

制約が削除されます。再びAを追加する場合は、それ用の新しい制約を作る必要がありますし、Aを削除する前に制約を保存しておけば、再び追加することができます。私がこのようなことをするときは、view1というビューに対してこのように制約を保存しています。

self.portraitConstraints = [NSMutableArray new];
for (NSLayoutConstraint *con in self.view.constraints) {
    if (con.firstItem == self.view1 || con.secondItem == self.view1) {
       [self.portraitConstraints addObject:con];
    }
}