【问题标题】:StackView not appearing correct on all screen sizesStackView 在所有屏幕尺寸上都显示不正确
【发布时间】:2019-02-21 06:33:19
【问题描述】:

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

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

【问题讨论】:

  • 你试过在不同的模拟器或设备上运行它吗?
  • 是的。我忘了提到Stack View 之一可以隐藏。查看编辑后的帖子。

标签: swift autolayout uistackview


【解决方案1】:

通常您不会在UIStackView 上设置高度。它们取决于它的内容。这将导致您的堆栈视图超出屏幕高度。您是否使用过视图层次结构?如果你想覆盖小尺寸的手机,你可以把你的主 stackView 放在一个 scrollView 中,仍然可以看到所有的内容。

【讨论】:

    【解决方案2】:

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

    • 使用尺寸等级设置视图之间的间距,以便您可以根据屏幕尺寸设置正确的间距,避免与下面的视图重叠。

    • 如果您正在这样做,请不要为任何 stackView 设置高度限制。
    • 要对齐顶部StackView,我不仅要对顶栏使用顶部约束(类型大于或等于),还要使用带有右乘数的垂直中心约束(具有高优先级)。通过这种方式,您可以确保顶部堆栈视图与屏幕大小成比例地垂直对齐,并且使用顶部约束可以确保堆栈视图不会隐藏在顶部栏下方。
    • 确保您隐藏了正确的 stackView。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-02-22
      • 2013-01-05
      • 2017-11-15
      • 1970-01-01
      • 2015-03-19
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多