为什么动画子视图会导致调用其父视图的layoutSubviews方法?

时间:2010-12-15 15:33:10

标签: iphone

我正在各个子视图上进行UIView动画,这些子视图具有许多我不希望受单视图动画影响的兄弟视图。但是,当我执行动画时,在包含的superview上调用layoutSubviews,导致其他兄弟姐妹也被重新排列。

(我应该解释一下,我在父视图的layoutSubviews方法中进行初始子视图布局;我只希望在我第一次设置子视图时调用它,而不是在我设置动画时以后他们分别。)

为什么在为子视图设置动画时会调用父视图的layoutSubviews方法?

2 个答案:

答案 0 :(得分:1)

我可以想象“排序图标网格”,您只需要为一个图标设置动画,其余图标将自动生效。

另一方面:您为要制作动画的视图设置了哪些自动调整遮罩?也许它与此有关。你在动画什么类型的UIView?也许它会改变形状,因此调用[self.superview setNeedsLayout]告诉superview它改变了形状。

其他想法:您的超级视图“autoresizedSubviews”设置了吗?

答案 1 :(得分:0)

我发现即使在视图图层上设置转换也可以触发视图的setLayoutSubviews。我也感到惊讶,但也许只是因为我现在不需要这种行为。它有时候会变得很方便,我猜......