Swift UIView小部件自动布局不工作

Swift UIView小部件自动布局不工作,uiview,autolayout,swift2,Uiview,Autolayout,Swift2,我有一个UIView“widget”(通过一个单独的XIB文件和UIView的相应Swift子类创建),它被插入到主情节提要中,以便可以轻松地重用。但是,添加到小部件(XIB)的自动布局约束不起作用 这是小部件的外观: 这3个指标(UILabels)在小部件中均匀分布。一些关键制约因素包括: 将第二和第三个指标与第一个指标垂直对齐 确保第二个度量在superview中水平居中 确保第一个度量是距离左边缘的特定距离 确保第三个度量是距离右边缘的特定距离 等等 但是,当我运行应用程序时,在将小

我有一个UIView“widget”(通过一个单独的XIB文件和UIView的相应Swift子类创建),它被插入到主情节提要中,以便可以轻松地重用。但是,添加到小部件(XIB)的自动布局约束不起作用

这是小部件的外观:

这3个指标(UILabels)在小部件中均匀分布。一些关键制约因素包括:

  • 将第二和第三个指标与第一个指标垂直对齐
  • 确保第二个度量在superview中水平居中
  • 确保第一个度量是距离左边缘的特定距离
  • 确保第三个度量是距离右边缘的特定距离
等等

但是,当我运行应用程序时,在将小部件插入到主情节提要之后,似乎没有施加此类约束。第三个度量从未显示,第二个度量没有水平居中。为了确认,我在UIView周围添加了红色边框,这样我可以看到整个小部件。整个小部件显示在superview中,只是度量没有按照预期正确对齐

知道为什么会这样吗?我正在考虑的另一种选择是将度量直接放在主情节提要视图上,但我不希望这样做,这样我就可以重用视图/代码

更新:

正如@Peyman所问的,这里有一个更清晰的约束版本。我已将标签更改为左/中/右,以便于将约束与XIB中的实际UI元素关联起来:


我终于找到了原因——由于某种原因,小部件的self.view似乎没有填满小部件的整个边界(我不太理解视图层次结构,所以我相信其他人可以更好地解释这一点)。但解决方案基本上是UIView的init函数中的一行附加代码:

self.view.frame = self.bounds;

以更清晰的方式向我们显示布局约束。可能是没有设置约束properly@Peyman-我已经用实际约束更新了描述。这就是你要找的吗?