我通过以下方式制作视图:
@IBAction func showInfo(sender: AnyObject) {
UIView.animateWithDuration(1,
delay: 0,
usingSpringWithDamping: 0.7,
initialSpringVelocity: 0.5,
options: nil,
animations: {
self.infoContainer.frame.origin.y = CGFloat(30)
}, completion: nil
)
}
我现在的问题是,我之后需要运行layoutIfNeeded()
吗?
答案 0 :(得分:2)
更改约束时需要调用layoutIfNeeded()。在按原点制作动画时,您不需要调用它
答案 1 :(得分:1)
由于您通过设置新框架进行动画处理,因此无需致电layoutIfNeeded()
。
我的猜测是你提出这个问题,因为它不适合你。如果使用AutoLayout设置视图,并尝试直接修改框架,它将无法工作,您必须通过修改约束中的常量来设置动画。