ios:autolayout动画,如何防止子视图动画?

时间:2015-03-02 09:56:28

标签: ios autolayout

我们可以改变NSLayoutConstraint的常量属性,而不是使用UIView动画块来进行动画更改。

myLayoutConstraint.constant = 50;
[UIView animateWithDuration: .3 animations:^{
    [view layoutIfNeeded];
}];

但是,视图的子视图(具有布局约束作为其超级视图)将被设置为动画!它们将从原始零帧动画到自动布局的目标帧。如何解决这个问题?

2 个答案:

答案 0 :(得分:10)

这表明您有待处理的布局操作。

之前请致电layoutIfNeeded一次
myLayoutConstraint.constant = 50;

答案 1 :(得分:0)

如果子视图具有依赖于动画约束的约束,那么这不可能。

你可以做的是使子视图的约束独立于动画约束。

因此,如果您要预览预览的高度,则不要将子视图固定到其超级视图的顶部和底部,因为这会使它们在动画时更改。只将它们固定在顶部,以便它们能够下降"从底部开始。

这样,当动画高度时,它会在不动画的情况下显示子视图。