【问题标题】:Solving Storyboard missing trailing/leading constraints warning解决 Storyboard 缺少尾随/前导约束警告
【发布时间】:2019-01-02 03:00:58
【问题描述】:

我正在为所有 iPhone 型号(iOS 10.0+)发布我的应用程序,并确保在所有本地化中,标签和控件不会重叠。

在一个简单的静态单元格中,给左侧的标签一个前导约束并将其垂直居中就足够了。右侧的控件也是如此,但有一个尾随约束。一切都会好的。

直到 Xcode 警告。

它要求缺少尾随或前导约束以避免在任何情况下重叠(这不会发生在我的身上)。

这是一个简单的测试用例:

我通过给右侧的开关设置 10.0 的前导约束来消除警告,只是为了确保。它工作正常。 (附图第一行)

但是,同样的,分段控件会将其一直拉伸到标签的左侧到右侧。附图片第 3 行)即使我将标签的大小进一步向右增加,它也会踩下标签的宽度。

由于我想将单元格放在第二行,所以我在视图控制器中做了我认为 hacky 的事情,在这种情况下,我必须为每个屏幕尺寸指定精确的 x 值(这没关系,但我想避免)(毕竟是故事板......):

@IBOutlet weak var mySegmentedControl: UISegmentedControl!

override func viewWillLayoutSubviews() {
    mySegmentedControl.frame = CGRect(x: 238.0, y: mySegmentedControl.frame.minY,
                                      width: 121.0, height: mySegmentedControl.frame.height)
  }

有没有更好的方法来实现这一点?

【问题讨论】:

  • 使用大于或等于常量作为尾随值将修复警告。
  • @LaI Krishna 感谢您的帮助,我该在哪里指定?
  • 您可以通过单击My Table View Controller Scene 文本附近的黄色右箭头 快速修复。
  • 我明白了,只有在添加后,在这种情况下是一个尾随常数,比如 10,我才能在 Size Inspector 中对其进行编辑。
  • 好的,感谢您的快速修复!这比我预期的要容易。如果可以将此作为其他任何人的答案发布在这里,我可以接受这个作为答案。

标签: ios xcode storyboard constraints


【解决方案1】:

新版本的 Xcode 会将此显示为警告。

您可以修复这个在 UILabel 的尾随添加大于或等于约束的问题。

注意:您可以通过单击My Table View Controller Scene 文本附近的黄色右箭头快速修复

UILabel 的长度是可变的。当您将文本设置为标签时,它将自动调整大小。如果您没有设置尾随约束,它可能会与其他视图重叠(在这种情况下 - 分段控制)。如果您添加固定约束,它将起作用,但新的 Xcode 将其显示为警告。所以我们必须将其更改为大于或小于约束。

【讨论】:

  • 太好了,我能够在 2 分钟内修复 20 个这样的警告。
  • 快速修复适用于几乎所有情况。但有时它会引起麻烦。就像在 Scrollview 中添加约束一样。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-10-22
  • 2015-04-02
相关资源
最近更新 更多