为 UIStackview 设置约束

Setting constraints to UIStackview

我最近开始使用 UIStackViews 自动布局,但将 运行 保留在警告中,例如屏幕截图中的警告,我不确定如何让它们消失。

image image2image3image4image5如有任何帮助,我们将不胜感激。

  [1]: https://i.stack.imgur.com/a4aUp.png
  [2]: https://i.stack.imgur.com/U7knK.png
  [3]: https://i.stack.imgur.com/tcPO0.png
  [4]: https://i.stack.imgur.com/Ti3IH.png
  [5]: https://i.stack.imgur.com/PMTrj.png
  [6]: https://i.stack.imgur.com/0LJh7.png

您的 stackView 中有许多 UIView,而 UIView 没有任何固有高度,因此存在歧义。
stackView 基本上不知道为内部 uiview 元素设置什么高度,因此不知道它们将在什么 y 位置开始。

解决方案 #1:

  • Select 最上面的 stackView 包含所有其他 stackView,在它的属性检查器中,将其分布更改为 Fill Proportionally
  • 为后退按钮提供 X 和 Y 位置


解决方案 #2:

  • 除了最后一个 bottomSpace
  • 之外,您对每个 UIView(您的 backButtonViewtitleView 等)都设置了高度限制


此外,您不必要地嵌套了 stackView。此外,您 没有 stackView.

中完成所有事情

第一个视图看起来您想要一个带有后退按钮的顶部栏。您应该使用带有 navigationItemnavigationBar,除非您的设计有特殊要求,否则不需要也不应该在 stackView 中。

最后一个视图看起来像你想离开 space 所以你在 stackView 中有一个 bottomSpace 视图,这两个都是不必要的。

解决方案 #3

  • 重新设计您的布局并进一步简化它。
    对于您的布局,您可以使用单个 stackView btw.

例如,它并不完全符合您的设计,但接近于: