动画约束更改无效

时间:2014-07-11 11:14:08

标签: ios uiview uiviewanimation nslayoutconstraint

我有一个视图,我想根据动画块内的顶部间距约束移动它。

这是我使用的代码。约束正在改变,但框架仍然是相同的;我该怎么办?

我对名为IBOutlet

的约束有一个topConstraint
  [UIView animateWithDuration:0.3f animations:^{
        self.topConstraint.constant -= 80 ;
        [self.view layoutIfNeeded];
    }];

我已经阅读了有关此内容的所有内容,但它似乎无法正常工作。

3 个答案:

答案 0 :(得分:4)

你试过了吗?

 [self.view setNeedsUpdateConstraints];

答案 1 :(得分:0)

self.topConstraint.constant = newValue;
[self.view setNeedsUpdateConstraints];

[UIView animateWithDuration: animationDuration
                      delay: animationDelay
                    options: UIViewAnimationOptionCurveEaseOut
                 animations: ^(void)
                    {
                        [self.view layoutIfNeeded];
                    }
                 completion: nil];

答案 2 :(得分:0)

这就是它在Swift 3中的作用

self.view.setNeedsUpdateConstraints()

UIView.animate(withDuration: 1.0,
                       animations: {
                        self.horizontalCenterConstraint.constant = -23
                        self.view.layoutIfNeeded()
        }, completion: nil)