2014-07-11 2 views
2

У меня есть представление, и я хочу переместить его в соответствии с его верхним ограничением расстояния внутри блока анимации.
Изменение ограничений на анимацию не работает

Это код, который я использую. Ограничение меняется, но кадр все тот же; что мне делать?

У меня есть IBOutlet к ограничению имени: topConstraint

[UIView animateWithDuration:0.3f animations:^{ 
     self.topConstraint.constant -= 80 ; 
     [self.view layoutIfNeeded]; 
    }]; 

Я прочитал все об этом, но это не похоже на работу.

ответ

3

вы пробовали:

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

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

Это то, что он работал на меня в Swift 3

self.view.setNeedsUpdateConstraints() 

UIView.animate(withDuration: 1.0, 
         animations: { 
         self.horizontalCenterConstraint.constant = -23 
         self.view.layoutIfNeeded() 
     }, completion: nil) 
Смежные вопросы