63

警告:leading or trailing horizontal alignment before iOS 11

在 Xcode 9.1 上编译时,我在情节提要文件中的一个场景中遇到了警告。还有其他情节提要(部署目标为 iOS 10.0),但警告显示在特定情节提要文件上的特定场景中。

如果我在显示警告的场景中将部署目标更改为 iOS 11.0,则警告会被抑制,但我不想这样做。

有没有人遇到过这种情况?

4

4 回答 4

132

对我来说,问题在于对自身使用trailing leading对齐。UIButton

安全区域似乎完全可以使用 - 它向后兼容,并且可以转换为适当的超级视图边距。

但此功能仅适用于 iOS 11,因此如果您的目标是较低的 iOS 版本,请改用标准的左/右对齐方式。

找出导致问题的视图的最简单方法是搜索.xibcontentHorizontalAlignment="leading"contentHorizontalAlignment="trailing"在源代码中

在此处输入图像描述

于 2017-12-18T15:21:05.070 回答
41

第1步:

将有问题的故事板作为源代码查看: 在此处输入图像描述

第2步:

替换以下所有实例:

contentHorizontalAlignment="leading"

和:

contentHorizontalAlignment="left"

第 3 步:

替换以下所有实例:

contentHorizontalAlignment="trailing"

和:

contentHorizontalAlignment="right"

第4步:

编译并观察警告消失。

当您有大量需要修改的元素时,我发现这种方法更容易。iOS 11 引入了作为“contentHorizo​​ntalAlignment”值类型的“leading”和“trailing”。iOS 10 不知道“leading”和“trailing”,这是警告的原因。

于 2018-06-08T16:26:44.483 回答
2

在构建日志中,就在“警告”一词之前,您将看到“xxx-yy-zzz”形式的 Interface Builder 标识符。将其复制并粘贴到 Xcode 搜索栏中,它会为您找到“有问题的”控件。单击搜索结果,它将带您直接进入情节提要并选择相应的控件。其余的问题可以使用其他答案来解决。

于 2019-02-12T18:35:51.493 回答
0

我遇到了一大堆按钮的问题,我需要左对齐并有一点偏移。我删除了故事板对齐,并在 viewDidLoad 中使用一组需要的按钮进行了这样的操作。

func indentButtons(buttons: [UIButton?]){
    for i in 0..<buttons.count{
        buttons[i]!.contentHorizontalAlignment = .left
        buttons[i]!.titleEdgeInsets = UIEdgeInsetsMake(0, 5, 0, 0)
    }
}
于 2019-06-08T14:05:14.253 回答