setNeedsLayout layoutIfNeeded layoutSubviews
零,提前了解
一,setNeedsLayout
二,layoutIfNeeded
三,layoutSubviews
class ViewController: UIViewController {
@IBOutlet weak var blueHeight: NSLayoutConstraint!
@IBAction func heightPressed(_ sender: AnyObject) {
// 在这个方法上面的UI更改,先结算一下,同步渲染完成。
// 这个方法之后,这个方法之前的UI更改,就都完成了。
view.layoutIfNeeded()
if(self.blueHeight.constant == 25.0)
{
self.blueHeight.constant = self.view.bounds.height - 300.0
}
else
{
self.blueHeight.constant = 25.0
}
UIView.animate(withDuration: 2.0, animations: {
// 在动画的回调里面,强制layout,会使更改的布局产生动画效果。
// 如果调用 layoutIfNeeded 来强制 layout,不会产生动画效果。
self.view.layoutIfNeeded()
})
}
override func viewDidLoad() {
super.viewDidLoad()
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
}
}最后更新于