Write layout programmatically

Autolayout guide

  1. NSLayoutAnchor (recommanded)
  2. NSLayoutConstraint
  3. Visual Format Language

好处:
– 控制台日志输出的是VFL格式,所以和代码一样方便修改
– 一次创建多个约束
不足:
– VFL仅允许创建有效约束
– 由于其特性, VFL不允许创建一些约束(比如长宽比)
– 编译器不会验证其正确性, 需要run之后才能发现错误.

基本创建:

1
2
3
4
5
6
7
8
9
10
NSLayoutConstraint.activate([constraints])

let views = ["myView" : myView]
let formatString = "|-[myView]-|"

let constraints = NSLayoutConstraint.constraints(
withVisualFormat: formatString,
options: .alignAllTop,
metrics: nil,
views: views)