为UIStackview设置约束

时间:2018-02-14 21:06:16

标签: ios xcode autolayout uistackview

我最近开始使用UIStackViews自动布局,但一直遇到屏幕截图上的警告,我不知道如何让它们消失。

image image2 image3 image4 image5我们将不胜感激。

  [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

1 个答案:

答案 0 :(得分:1)

UIView中有stackViewUIView,而stackView没有任何内在高度,因此存在歧义。
uiview基本上不知道为内部stackView元素设置的高度,以及因此它们将从哪个y位置开始。

解决方案#1:

  • 选择包含所有其他stackView的最顶层的Fill Proportionally,并在其属性检查器中,将其分配更改为UIView
  • 给X&后退按钮的Y位置

Solution #1

解决方案#2:

  • 您为每个backButtonView(您的titleViewbottomSpace等)提供了一个身高限制,除了最后一个stackView

Solution #2

此外,您已经不必要地嵌套了stackView。此外,您没有 来执行navigationBar

中的所有操作

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

最后一个视图看起来您想要留出空间,因此您在stackView中有一个/documents/document1/versions/1视图,而且这两个视图都是不必要的。

解决方案#3

  • 重新设计您的布局并进一步简化。
    对于您的布局,您可以使用单个/documents/document1/versions/2 btw。

作为一个例子,它不完全符合您的设计,但接近于: Solution #3