0

将子视图与另一个太阳视图交换时,是否需要重新应用约束?是否需要删除适用于已删除视图的约束?

还是应该自动持续存在?

4

1 回答 1

1

约束是视图的“一部分”。当您删除视图(使用removeFromSuperview)时,它们会保留在该视图中,前提是视图本身没有被释放。然后,您可以安全地再次添加视图,约束将负责定位。

将其与视图的框架进行比较:即使您从其父视图中删除视图,框架仍将保持不变。当您将视图添加回子视图时,它将处于与以前完全相同的位置。

因此,回答您的问题:当您将一个视图与另一个视图“交换”时,新视图将没有任何约束。这行不通:

[newView addConstraints:[oldView constraints]];

这将导致“视图不在层次结构中”错误,因为约束绑定到oldView.

于 2013-06-21T00:31:07.487 回答