解决故事板缺少 trailing/leading 约束警告

Solving Storyboard missing trailing/leading constraints warning

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

在一个简单的静态单元格中,为左侧的标签提供前导约束并将其垂直居中就足够了。对右侧的控件也可以这样做,但要有尾随约束。一切都会好起来的。

直到 Xcode 警告。

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

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

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

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

由于我希望单元格位于第 2 行,所以我在视图控制器中做了我认为有问题的事情,在这种情况下,我必须为每个屏幕尺寸指定确切的 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)
  }

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

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

您可以修复此添加大于或等于 UILabel 尾部的约束。

注意:您可以通过单击 My Table View Controller Scene 文本

附近的 黄色向右箭头 快速修复

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