【发布时间】:2019-02-18 11:19:21
【问题描述】:
动画约束变化的标准方法是。
// Change constraints like:
someConstraint.constant = 100
UIView.animate(withDuration: 0.25) {
view.layoutIfNeeded()
}
但是我在看WWDC 2015 session on multitasking on iPad and at the end,它说不要在动画块中使用layoutIfNeeded,而是使用setNeedsLayout。但是我一直认为这意味着布局在运行循环的后期发生,因此在动画块之外。也许它记得它是在动画块中调用的?
我尝试在我的代码中将layoutIfNeeded 替换为setNeedsLayout,它似乎有效。这只是巧合吗?我们实际上应该使用setNeedsLayout 为自动布局更改设置动画?
【问题讨论】:
-
那些特定的 cmets 是(或者,我应该说,似乎是)在大小变化期间与动画严格相关。如果您通过点击按钮(例如)来更改约束,您确定没有看到差异吗?将您的持续时间更改为
2.0并查看它是否真的动画超过 2 秒,例如一个不错的、缓慢的“滑动”到新位置。
标签: ios animation autolayout uikit