孕孕的三个问题之——Auto Layout 怎么做动画

使用了 Auto Layout 之后,由于布局引擎已经从根本上不同,所以我们就需要改变“直接修改 frame”这种操控动画的方式了。其实 Auto Layout 做动画的原理说起来也很简单:先修改某一个或者几个约束的值,再使用动画语句应用这些值:

// 修改从 StoryBoard 绑定到类的约束的值
self.verticalSpaceConstraintOfButtonToLabel.constant += 100

// 在动画闭包里对其父级进行 layoutIfNeeded()
UIView.animateWithDuration(0.5, animations: { () -> Void in
    self.view.layoutIfNeeded()
})

以上代码出自于某次分享:https://github.com/johnlui/AutoLayout


想深入的同学可以阅读Auto Layout 使用心得(六)—— 制造炫酷的下拉刷新动画,我近期准备对这一系列的文章进行重写,更深入一些。

就这么简单。约束也可以绑定到类,这也是我某次脑洞大开想到的,其实可视化编程还有许多隐藏的强大功能等着我们去挖掘。

Notice:

  • iOS 8 及以前,大部分时候我们都可以采用对元素本身进行 layoutIfNeeded() 来进行动画
  • iOS 9 引入的一些新特性将这种成功率大幅降低了,所以现在请大家遵循官方文档,对其父级进行 layoutIfNeeded() 以保证成功率。

WRITTEN BY

avatar
2015.11.24   /   热度:404   /   分类: Auto Layout Club

发表评论:

© 2011-2017 岁寒  |  Powered by Emlog