我正在尝试为集合视图设置高度变化的动画,但我无法弄清楚如何使动画生效。高度正确变化,但它立即发生,而不是动画。
@IBOutlet weak var collectionViewHeight: NSLayoutConstraint!
UIView.animateWithDuration(0.3, delay: 0, options: .CurveEaseOut, animations: {
self.collectionViewHeight.constant = 0
}
我尝试搜索解决方案,但找不到任何特定于此情况的内容。此处也尝试了layoutIfNeeded()
,但它没有帮助:Animate view height with Swift
非常感谢任何帮助!
答案 0 :(得分:5)
你应该更新动画块之外的约束常量:


 self.collectionViewHeight.constant = 0
 UIView.animateWithDuration(0.3 ,delay:0,options:.CurveEaseOut,
 animations:view.layoutIfNeeded,completion:nil)



 ( view
是相关集合视图的超级视图。)