首页 > 解决方案 > Swift - 仅对特定约束进行动画处理

问题描述

我正在尝试为我的 ViewController 中的约束设置动画。为了做到这一点,我在我的代码中添加了这一行:我只是想改变 UIView() 的高度(从 0 到 100)

barHeight.constant = CGFloat(100)
UIView.animate(withDuration: 2) {self.view.layoutIfNeeded()}

问题是,有了这条线,所有的约束都是动画的,这不是我想要的。

你知道我怎样才能只为特定约束而不是其他约束设置动画吗?

标签: iosswiftanimationswift3constraints

解决方案


在编辑要设置动画的约束之前调用 layoutSubviews。这将导致在没有任何动画的情况下应用任何挂起的布局更新,然后您可以使用动画更改下一个约束。

像这样:

 self.view.layoutSubviews()
 barHeight.constant = CGFloat(100)
 UIView.animate(withDuration: 2) {self.view.layoutIfNeeded()}

推荐阅读