【问题标题】:Auto Layout Challenge: Please tell me what is wrong in this case自动布局挑战:请告诉我在这种情况下出了什么问题
【发布时间】:2017-01-04 22:33:04
【问题描述】:

我一直在尝试了解自动布局,但一直失败并需要帮助。

在下面的这个测试项目中,我想对齐 4 个正方形,以便在所有设备上的纵向和横向模式下都看起来不错。我需要知道我做错了什么约束。

在这种情况下我使用了视图。

在第一步中,我添加了等宽/大小的针脚,因为所有正方形的大小都相同。

方块的大小为 W:250 H:121。视图容器是推断的选项

在第二步中,我在正方形之间添加了宽度和高度引脚(垫子)。

在第三步中,我将所有必要的外部约束从各个方块添加到超级视图(前导、尾随、从上到上布局、从下到下布局)。

最后我的约束最终会做什么;它们在纵向上看起来不错,但在横向上看起来很奇怪/不显示。

我做错了什么?是尺寸等级问题、约束问题、我完全遗漏了某些步骤还是其他什么?

【问题讨论】:

  • 您能否提供一张您想要的图片? 这很简单,但您必须非常清楚应该 发生什么。你想要一个 2x2 的正方形网格吗?为什么不使用包含两个水平堆栈视图的垂直堆栈视图,每个堆栈视图包含两个正方形?现在剩下的唯一问题是:当屏幕因为纵向和横向而变得更宽和更窄时,这个外部堆栈视图应该相对于屏幕位于哪里?您必须为此制定计划,仅此而已。
  • 首先感谢马特这么快的回复。我只希望在横向模式下显示 4 个按钮,就像在纵向模式下一样;它们以何种方式显示并不重要,因为我只想了解自动布局的功能。看起来我将不得不学习如何使用堆栈视图。可能类似于以下链接中的内容s10.postimg.org/o5isrnpg9/… 谢谢!
  • 您没有使用堆栈视图,但它们使您所描述的内容变得如此简单!

标签: ios xcode autolayout constraints size-classes


【解决方案1】:

在您的 3.5 和 4 英寸中它不显示,因为您将约束固定到 superView 的底部,该约束的常量值单独高于屏幕本身,迫使您的视图高度变为 0(或在更大的 5.5 屏幕上非常小就像在您的屏幕截图中一样),要解决此问题,请尝试使用较少的 CONSTANT 值,而是使 constant 变为 0,并更改您想要使其与超级视图一起缩放的 Multiplier 值(在你的情况是底部的约束)

另一个选项是将底部约束的优先级更改为更低,并为其中一个视图提供height 约束(Relation 设置为equalgreater than or equal),它将起作用

【讨论】:

    猜你喜欢
    • 2015-12-02
    • 2016-08-04
    • 2021-09-07
    • 1970-01-01
    • 1970-01-01
    • 2019-05-12
    • 2014-08-21
    • 2022-08-06
    • 2022-01-23
    相关资源
    最近更新 更多