【问题标题】:Autolayout confusion自动布局混乱
【发布时间】:2025-12-23 06:00:17
【问题描述】:

这是我的限制条件。

问题在于横向模式。例如,紫色视图的高度是 58.33(纵向模式),但在横向模式下是 36.33。但在 iPad 或 iPhone 12 pro max 上,这两者是相等的。

  1. 如果约束相同,为什么它们会不同?
  2. 如何将它们设置为相同(横向模式和纵向模式下的紫色视图高度)?

【问题讨论】:

  • 如果你想要一个固定的高度,添加一个高度约束。这些设备具有不同的屏幕尺寸,因此如果您固定高度,则需要允许进行其他更改。
  • 我不需要固定尺寸。我只需要一件事,横向模式下紫色视图的高度将等于纵向模式下紫色视图的高度。
  • 这很简单。高度来自宽度,宽度来自您的左右边距约束。在纵向模式下,宽度很小,需要两行文字,因此高度较大。解决方案更简单 - 使宽度固定。例如,您可以将宽度设置为屏幕宽度的一部分(通过代码设置一个约束并不可耻)并使用水平居中而不是左右边距。或者,确保您的文本足够短,可以容纳一行。

标签: ios xcode autolayout


【解决方案1】:

试试这个:选择一个按钮并将其“内容压缩阻力优先级”设置为 1000(必需)

顺便说一句。 SceneView 在旋转过程中也会发生变化。考虑到这两个视图都没有固定的高度,并且完全由其内容(固有)定义,看起来您还有其他约束需要满足更高的优先级,必要时可以拉伸和挤压 屏幕上的前两个垂直约束看起来有点不清楚

【讨论】:

    【解决方案2】:

    问题在于,这个故事板是“X”故事板中的一个容器视图,而“X”故事板有几个与这个故事板相关的约束。这就是问题所在。 :)

    【讨论】: