iOS:为什么当视图有约束并调整大小时,不会调用superview的“layoutsubviews”?

时间:2015-11-24 11:53:58

标签: ios ios-autolayout

我正在处理的当前项目中有两个视图view1和view2。 view2是view1的子视图。我注意到如果没有为view2定义约束,当我调整view2的大小时,将调用view1的“layoutsubviews”,然后调用view2。但是,如果我在view1中向view2添加了一个约束,则调整view2的大小只会触发view2的“layoutsubviews”。

我找不到任何文件来解释这一点。这是预期的吗?为什么行为不同?

1 个答案:

答案 0 :(得分:0)

我认为原因是:
 当我们为view2设置约束时,肯定会导致view2本身约束和帧的更改,但是如果view2依赖于view1(这意味着view2没有view1的约束,并且view2没有与view1中的其他子视图的约束),在这种情况下,view2约束的更改不会导致view1的约束更改,并且肯定不会导致view1的layoutSubviews