可以将swift 3中的所有约束设置为动画吗?

时间:2017-03-03 16:50:01

标签: ios swift swift3

我想使用以下代码为视图设置动画:

 UIView.animate(withDuration: 2.7, delay: 0.1, options: .allowAnimatedContent, animations: {
        self.AVCenterY.constant = 0.8
      }, completion: nil)

但它发生得如此之快,似乎没有动画。另一方面,当我为属性alpha设置动画时,它会被动画化(需要2.7秒才能更改)。我使用2.7秒来确保问题是我使用了一段很短的时间。

1 个答案:

答案 0 :(得分:2)

约束根本无法动画。可以设置动画的布局行为:

UIView.animate(withDuration: 2.7, delay: 0.1, options: .allowAnimatedContent, animations: {
    self.AVCenterY.constant = 0.8
    theView.superview?.layoutIfNeeded() // *
}, completion: nil)

当我们为布局行为设置动画时(或者当运行时这样做时),然后任何约束更改也会自动生成动画。

请注意,我动画的是要移动的视图的 superview 布局。我把它称为theView但这只是我编造的东西。您将需要一个该视图的插座,以便您可以获得其超级视图,并使用该插座的名称。