UIStackView中的视图未使用AutoLayout调整大小

时间:2016-08-28 19:17:09

标签: ios swift autolayout uistackview

我有以下屏幕:

enter image description here

所有观点都在UIStackView内。黄色视图在运行时将是循环的。当我运行较小的iPhone(5S),包含light blue的{​​{1}}视图时,我的问题不会变小,因此底部的yellow view会缩小。我希望这两个和red and blue view具有固定的宽度,green view来适应高度。

但由于某种原因,它没有。我确信是因为我设置了light blue view的约束。但我无法弄清楚哪一个是问题。

以下是yellow view约束:

enter image description here

其他观点的限制是:

  1. 绿色视图:身高= 64
  2. 红色和蓝色视图:高度= 50
  3. 非常感谢有人可以花一些时间来查看这些限制并帮助我了解如何在屏幕更改时使浅蓝色(和黄色)更改高度。

1 个答案:

答案 0 :(得分:2)

您是否尝试将浅蓝色和黄色视图的内容压缩阻抗优先级(垂直)降低到750以下,绿色,红色和蓝色视图的内容压缩阻力优先级(垂直)高于750 (如果是这样的话,甚至可能需要1000 /?)

更新

我看了你的项目。实际上,问题似乎与您的堆栈视图,约束或DailyStatusViewController完全没有关系。相反,该问题看起来与MainViewController更相关,jdbc.url=jdbc:hsqldb:database/customers 将每日状态视图嵌入滚动视图中。滚动视图既可以剪切到边界,也可以放在另一个容器视图后面。如果您在滚动视图上关闭剪辑到边界,并将其下方的容器视图移动到后面它,您将看到堆栈视图正确布局,但只是被剪裁。

至于它们被剪裁的原因,请记住,你的外部堆栈视图的所需高度约束为300,而嵌入它的滚动视图的高度约束为屏幕高度的45%。因此,在较小的屏幕上,可用于显示“每日状态”视图的点少于300个,因此它被剪裁。您可能希望从外部堆栈视图中删除固定高度约束,而是将其约束到根视图的边缘。