Swift 如何正确的修改约束并添加动画

代码如下, 当你修改完约束之后添加动画之前, 你需要事先调用一次self.view.layoutIfNeeded.
它能确保在动画过程之中只有你修改的约束,会被加上动画效果.
否者其他view发生变化的时候也会被这个动画影响.

...
 self.view.layoutIfNeeded()
 topInfosViewHeight.constant = 102
 UIView.animateWithSpring({
       self.view.layoutIfNeeded()
 })
...
extension UIView {
    class func animateWithSpring(animate: ()->Void) {
        animateWithDuration(0.7, delay: 0, usingSpringWithDamping: 0.7, initialSpringVelocity: 0.7, options: .LayoutSubviews, animations: animate, completion: nil)
    }
}

Referencer: Best practice for modifying storyboard auto layout constraints in code

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容