IOS:自动布局动画,如何防止子视图被动画化?

5
我们可以更改NSLayoutConstraint的常量属性,然后使用UIView动画块使更改具有动画效果。
myLayoutConstraint.constant = 50;
[UIView animateWithDuration: .3 animations:^{    [view layoutIfNeeded];
}];

然而,具有布局约束作为其父视图的视图的子视图将被动画化!它们将从原始零框架动画到自动布局的目标框架。如何解决这个问题?

2个回答

13

这表明您有未决的布局操作。在执行下一个布局之前,请先调用layoutIfNeeded

myLayoutConstraint.constant = 50;

0

如果子视图的约束取决于动画约束,那么这是不可能的。

但您可以使子视图的约束与动画约束无关。

因此,如果您正在动画预览的高度,则不要将子视图固定在其父视图的顶部和底部,因为这会使它们在动画过程中发生变化。只将它们固定在顶部,以便它们“掉落”到底部。

这样,当高度被动画时,它将显示子视图而不会对它们进行动画处理。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接