У меня есть два состояния UIView
:Почему layoutIfNeeded() позволяет выполнять анимацию при обновлении ограничений?
У меня есть анимации между ними с помощью @IBaction
для button
:
@IBAction func tapped(sender: UIButton) {
flag = !flag
UIView.animateWithDuration(1.0) {
if self.flag {
NSLayoutConstraint.activateConstraints([self.myConstraint])
} else {
NSLayoutConstraint.deactivateConstraints([self.myConstraint])
}
self.view.layoutIfNeeded() //additional line
}
}
Анимация работает только тогда, когда я добавить дополнительную строку:
Но когда я эмулировать эту строку, тогда обновляется UIView
, но без анимации это происходит немедленно.
Почему эта линия имеет такое значение? Как это работает?