我想使用以下代码为视图设置动画:
UIView.animate(withDuration: 2.7, delay: 0.1, options: .allowAnimatedContent, animations: {
self.AVCenterY.constant = 0.8
}, completion: nil)
但它发生得如此之快,似乎没有动画。另一方面,当我为属性alpha设置动画时,它会被动画化(需要2.7秒才能更改)。我使用2.7秒来确保问题是我使用了一段很短的时间。
答案 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
但这只是我编造的东西。您将需要一个该视图的插座,以便您可以获得其超级视图,并使用该插座的名称。