iOS 自动布局 - 堆栈视图中的约束问题

iOS Auto Layout - Issue with constrains within Stack View

我的主视图有两个元素。框架顶部的 Stack View,底部的 View。在顶部 Stack View 我有一些标签。我希望这两个标签之一与父容器(Stack View)保持固定距离,而另一个我想要边缘。如此处所示:

我相信约束在此图像中正确可见。

现在,向标签 Foo 的 lead/trail 添加 50 单位的约束不起作用。显示的错误如下:

出于某种原因,还有一个我没有添加的额外约束(图中的第二个),那个我不能删除,但只能删除我添加的那个(50 单位)。如果我应用这个建议的更改,它看起来会延伸到 lead/trail,因为我想避免。

我做错了什么?为什么这会以如此不可预测的方式表现?是什么阻止我的标签在其父容器 Stack View?

上有一个固定的 lead/trail

One of these two labels I want to have with a fixed distance to the parent container (The Stack View), while the other one I want to the edge

好的。所以那不会是堆栈视图!只需将这些标签放入 普通 视图并配置约束即可。

原因是make 约束是堆栈视图的工作。它在排列的子视图上制造了一堆约束。因此you一定不要对那些排列好的子视图应用约束;如您所见,它们将与堆栈视图正在执行的操作发生冲突。

堆栈视图的作用是固定且有限的。如果您不喜欢它的作用,请不要使用它。请记住,堆栈视图不会做 任何您无法通过自己编写约束来完成的事情。所以就这样做吧。