StackView在所有屏幕尺寸上看起来都不正确

问题描述 投票:0回答:2

我有一个包含堆栈视图的ViewController。在此堆栈视图中,还有3个堆栈视图。第一个包含3个标签,第二个包含更多带有按钮和标签的堆栈视图,第三个包含2个按钮和一个标签。在底部,有一个按钮。屏幕尺寸从4,7英寸和更大的布局很好。但是当屏幕尺寸较小时,它会切掉顶部的堆栈视图。我试图在不同的变化中设置前端,尾部,顶部和底部的约束(带有并且没有顶部和底部约束)但我无法正常工作。我附上了不同屏幕类型的屏幕截图。

Screen size 4,7"

Screen size 4"

编辑*根据以前ViewController的选择,中间Stack View(带复选框的那个)可以是isHidden当它隐藏时,视图是正确的。

swift autolayout uistackview
2个回答
0
投票

一般来说,你没有在UIStackView上设置高度。他们依赖于它的内容。这将导致您的stackview超出屏幕高度。您是否使用过视图层次结构?如果你想覆盖小型手机,可以将主stackView放在scrollView中,以便仍能看到所有内容。


0
投票

如果没有看到您对视图应用的约束,诊断正在发生的事情有点困难,但是我会向您推荐一些可能会有所帮助的事情:

  • 使用大小类在视图之间设置空间,以便根据屏幕大小设置正确的空间,并避免与下面的视图重叠。

enter image description here

  • 如果您正在执行此操作,请不要为任何stackView设置高度约束。
  • 为了对齐顶部StackView,我不仅使用顶部条形的顶部约束(类型大于或等于),而且使用具有右乘数(具有高优先级)的垂直中心约束。通过这种方式,您可以确保顶部堆栈视图与屏幕大小成比例垂直对齐,并使用顶部约束确保stackView不会隐藏在顶部栏下方。
  • 确保您隐藏了正确的stackView。
© www.soinside.com 2019 - 2024. All rights reserved.