我们可以改变NSLayoutConstraint的常量属性,而不是使用UIView动画块来进行动画更改。
myLayoutConstraint.constant = 50;
[UIView animateWithDuration: .3 animations:^{
[view layoutIfNeeded];
}];
但是,视图的子视图(具有布局约束作为其超级视图)将被设置为动画!它们将从原始零帧动画到自动布局的目标帧。如何解决这个问题?
答案 0 :(得分:10)
这表明您有待处理的布局操作。
之前请致电layoutIfNeeded
一次
myLayoutConstraint.constant = 50;
答案 1 :(得分:0)
如果子视图具有依赖于动画约束的约束,那么这不可能。
你可以做的是使子视图的约束独立于动画约束。
因此,如果您要预览预览的高度,则不要将子视图固定到其超级视图的顶部和底部,因为这会使它们在动画时更改。只将它们固定在顶部,以便它们能够下降"从底部开始。
这样,当动画高度时,它会在不动画的情况下显示子视图。