在讲解autoalayout动画之前,先搞清楚下面三个方法的作用
layoutSubviews
这个方法里对所有的子控件进行布局操作,不能主动调用,需要调用时候直接调用setNeedsLayout就好。layoutifNeeded
强制更新布局,从而产生动画效果setNeedsLayout
标记需要重新布局,不立即刷新,layoutSubviews会被调用。
@IBOutlet weak var heightConstraint: NSLayoutConstraint!
@IBAction func didClick(_ sender: Any) {
heightConstraint.constant += 100
UIView.animate(withDuration: 1, delay: 1, usingSpringWithDamping: 0.7, initialSpringVelocity: 5, options: [.curveLinear], animations: {
self.view.layoutIfNeeded()
}, completion: nil)
}