自动布局第三篇
2017-12-06 本文已影响83人
人魔七七
例子一:cell里面三个Label ,cell高度由最高的决定。
![](https://img.haomeiwen.com/i1304277/4ccf8690b4591600.gif)
要点:放在StackView里面这样他会根据最高的来计算,设置StackView的约束这样能自动计算高度,设置Label 的preferredMaxLayoutWidth 这样能帮助计算StackView的布局方便cell自适应高度。
![](https://img.haomeiwen.com/i1304277/6c305adf1066675f.png)
![](https://img.haomeiwen.com/i1304277/f86e61290a221bf0.png)
例子二:宽度根据数量均分,呈阶梯状,整体高度根据所有的高度计算
![](https://img.haomeiwen.com/i1304277/a189b490f7c88593.gif)
要点,同样一个外层StackView 垂直分布,里面每行一个StackView水平分布,等比例分布,最后把空白的地方用View填充,也可以用UILayoutGuide替代。
注意:UIStackView里面删除并不是真正的删除,如果子View从父视图删除是真正删除。
第三个例子:看效果图吧,思路也是,外层一个UIStackView 里面三个UIStackView,利用自身增减特性实现。外层的约束大于等于0可以实现自身增减时候绿色Label不能超过灰色的View。
![](https://img.haomeiwen.com/i1304277/64c78a3e910c7682.gif)
![](https://img.haomeiwen.com/i1304277/d5674954cfa2dbfa.png)