Answers:
约束被删除。如果再次添加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];
}
}
但是请注意,如果您有两个独立的父视图A和B,以及一个子视图C,其中C当前是具有适当约束的A的子视图,则调用[B addSubview:C]不会清除与A相关的任何约束和C,自动布局将开始引发异常,因为这些约束不再与同一层次结构中的视图相关。
在将C添加到B之前,您需要显式调用[C removeFromSuperview]以删除约束。
在Mac OS X上是这样-我尚未检查过iOS