Xcode8 之后苹果似乎又推荐使用 autoresizing, 但与之前不同的是 autoresizing masks 在运行时会转换成约束。
同时苹果提出了一个概念叫 Incrementally Adopting Autolayout。 即简单的布局用 autoresizing, 者复杂布局用constraints,两者不能共同使用。还有一点新的特性是你可以构造 ambiguous 的约束了。
PS: 我在做项目的时候遇到过的一个问题就是,如果你在 xib 或者 storyboard 上给一个 view 添加了约束,那在 viewDidLoad 或者 ViewWillAppear 里你会发现这个 view 的长和宽都是 1000,并不是 xib 或者是 storyboard 里的值。这个会造成一些麻烦,比如说设置 cornerRadius 导致 View 不显示啊或者不起作用等等。但是如果你想获取到这个值你就可以采用 autoresizing。环境是 Swift 2.3, Xcode 8。这些都是自己实验出来的,文档倒是没找到
详细的请看 WWDC 2016 | What's New in Auto Layout,只需看前面10几分钟。