【问题标题】:Auto layout constraints - Vertical spacing with one item of variable height自动布局约束 - 具有一项可变高度的垂直间距
【发布时间】:2023-03-11 21:12:01
【问题描述】:

我在 2 个 UITextField 之上有 2 个 UILabel。 我希望第一个 UITextField 在屏幕尺寸允许时展开。

我设置了每个元素之间的垂直间距,并为底部的 UITextField 设置了固定高度约束,为第一个元素设置了 >= 高度约束。

以下是视网膜 3.5 外形尺寸 (

但是,它只是不起作用。下面是 Retina 4 外形 (>= iPhone 5) 的故事板屏幕截图。第一个 UITextField 与第二个重叠。

我应该设置什么约束?

【问题讨论】:

  • 你没有从底部视图到底部(封闭视图)的约束吗?

标签: ios objective-c storyboard constraints autolayout


【解决方案1】:

如果我把它放在我面前,我会玩弄抗压性能,这会比固定高度更优雅......但是....一种可行的粗略方法是:

  1. 您可以使用固定高度标签。
  2. 固定高度底部文本视图。
  3. 将顶部文本视图固定到标签底部。将顶部标签固定到视图顶部。
  4. 将底部文本视图固定到视图底部,将其标签固定在其上方。
  5. 将顶部文本视图的底部固定到其下方的标签上。

【讨论】:

    【解决方案2】:

    橙色 (-78) 是 Xcode 告诉您布局的框架与自动布局约束之间存在冲突的方式。尝试查看情节提要警告并修复框架或修复布局约束。

    【讨论】:

    • 两个答案的混合帮助我解决了这个问题,但另一个答案更有帮助。感谢您的帮助,仍然投票赞成这个答案。
    猜你喜欢
    • 1970-01-01
    • 2011-09-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-11-08
    • 2021-12-11
    相关资源
    最近更新 更多