什么是autoLayout
autoLayout的重新布局是通过 constraints 各个view实现自动布局,autoLayout重新调整布局view是在runtime中
autolayout without constraints
也就是通过stack view实现不引入复杂的constraints的情况下 还能使用autoLayout
什么是stack view
点击一个view 然后点击这个按钮 里面选择stack view
一个简单的stack view一般定义了一个view的row和column
主要是通过四个方面来定义:
方向(orientation: (NSStackView only)):定义了view的方向,垂直或水平
分布(orientation):定义了view 在坐标轴上面的分布
对齐(alignment):定义view是否对齐
间距(spacing):定义view和相邻view之间的间距
content-hugging Priority
两个试图 谁的 content-hugging Priority越高谁就优先围绕其内容
主要解决 当两个label设置constraints,在横向上label1的位置需要依靠label2决定 而label2也需要依靠label1决定 并且此时label1和label2的content-hugging Priority的horizentol优先级一样 就会有冲突 此时没办法确定label1和label2的位置 此时可以提高label1的优先级 让label1先确定下来
compression-resistance priorities
谁的compression-resistance priorities越大 其view中的内容越难被压缩 ,优先级越小的则优先被压缩
添加constraints
顶部:top
右侧:trailing
左侧:leading
下部:botton
top距离superView顶部20 = top + 20
left距离左边那个label1的右侧14 = label1.trailing + 14