自动布局UIStackViews之间的最小间隙

时间:2018-11-22 20:06:31

标签: ios autolayout ios-autolayout uistackview

我有3个UIStackViews并排放置如下:

   SV1 ---- SV2 ---- SV3

SV1与超视点领先者之间的固定距离为5点,SV2中心与超视点中心对齐,并且SV3与视点尾端的固定距离为5点。问题是在iPhone SE上,SV2太宽且太靠近SV1和SV3。如何设置自动布局约束,以使SV2与SV1和SV3的最小距离为D?

2 个答案:

答案 0 :(得分:0)

您可以创建两个约束:第一个约束在sv2和sv1之间,第二个约束在sv2和sv3之间。技巧是将约束设置为等于一个值,但大于

答案 1 :(得分:0)

您可以在堆栈视图之间创建水平间距约束并将其设置为大于或等于。这会照顾到它们之间的最小空间。

但是,由于它们要闭合在一起,这意味着其中至少有一个必须变小才能为分离留出空间。您可以通过在堆栈视图中设置视图的耐压缩性优先级来控制哪一个。值最低的那一个缩小。

如果所有三个堆栈视图都具有不同的宽度,则还可以将中心约束的优先级降低到一个小于间距约束优先级的值。这意味着将中心视图推到一侧以留出空间。

取决于您的确切观点,有很多可能性。最好的方法是对优先级进行一些试验。