为什么不用动画改变所有NSLayoutconstraints,以及如何修复它?

时间:2016-06-07 16:02:54

标签: ios swift nslayoutconstraint

我在ViewController中有两个相继定位的子视图(第一个连接到第二个顶部的底部)

第一个视图正在改变它的动画高度(例如下面的代码),所以我预计第二个视图也将随着动画一起下降,但它不是......

如何让它全部动画?

第一个视图的动画块

func animate(){
    layoutIfNeeded()
    UIView.animateWithDuration(1){
        self.labelHeight.constant = 70 // this is constraint
        self.layoutIfNeeded()
        }
}

enter image description here

1 个答案:

答案 0 :(得分:2)

兄弟视图之间的约束被添加到他们的共享超级视图中,因此您应该在其上调用layoutIfNeeded()。例如:

func animate(){
    self.superview?.layoutIfNeeded()
    UIView.animateWithDuration(1){
        self.labelHeight.constant = 70 // this is constraint
        self.superview?.layoutIfNeeded()
        }
}