我正在各个子视图上进行UIView动画,这些子视图具有许多我不希望受单视图动画影响的兄弟视图。但是,当我执行动画时,在包含的superview上调用layoutSubviews
,导致其他兄弟姐妹也被重新排列。
(我应该解释一下,我在父视图的layoutSubviews
方法中进行初始子视图布局;我只希望在我第一次设置子视图时调用它,而不是在我设置动画时以后他们分别。)
为什么在为子视图设置动画时会调用父视图的layoutSubviews
方法?
答案 0 :(得分:1)
我可以想象“排序图标网格”,您只需要为一个图标设置动画,其余图标将自动生效。
另一方面:您为要制作动画的视图设置了哪些自动调整遮罩?也许它与此有关。你在动画什么类型的UIView?也许它会改变形状,因此调用[self.superview setNeedsLayout]告诉superview它改变了形状。
其他想法:您的超级视图“autoresizedSubviews”设置了吗?
答案 1 :(得分:0)
我发现即使在视图图层上设置转换也可以触发视图的setLayoutSubviews。我也感到惊讶,但也许只是因为我现在不需要这种行为。它有时候会变得很方便,我猜......