Стандартный способ анимации изменений ограничений:
// Change constraints like:
someConstraint.constant = 100
UIView.animate(withDuration: 0.25) {
view.layoutIfNeeded()
}
Однако я наблюдал сеанс WWDC 2015 по многозадачности на iPad, и в конце он сказал, что не используйте layoutIfNeeded
в анимационных блоках, используйте setNeedsLayout
вместо.Однако я всегда думал, что это будет означать, что компоновка происходит позже в цикле выполнения и так за пределами блока анимации.Возможно, он помнит, что он был вызван в анимационном блоке?
Я попытался заменить layoutIfNeeded
на setNeedsLayout
в моем коде, и это, похоже, сработало.Это просто совпадение, и мы на самом деле должны анимировать изменения автопоставки с помощью setNeedsLayout
?