在iOS 11之前前导或尾随水平对齐

时间:2017-11-23 12:57:20

标签: ios xcode autolayout storyboard safearealayoutguide

警告:leading or trailing horizontal alignment before iOS 11

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

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

有没有人遇到过这个案子?

4 个答案:

答案 0 :(得分:101)

对我而言,问题在于trailing本身使用leading UIButton对齐。

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

但此功能仅适用于iOS 11,因此如果您要定位较低的iOS版本,请使用标准左/右对齐。

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

enter image description here

答案 1 :(得分:28)

第1步:

将您的违规故事板视为源代码: enter image description here

第2步:

替换以下所有实例:

contentHorizontalAlignment="leading"

使用:

contentHorizontalAlignment="left"

第3步:

替换以下所有实例:

contentHorizontalAlignment="trailing"

使用:

contentHorizontalAlignment="right"

第4步:

编译并观察警告消失。

当你有大量需要修改的元素时,我发现这种方法更容易。 "主导"和"尾随" as' contentHorizo​​ntalAlignment' iOS 11引入了值类型.iOS 10并不知道"领先"和"尾随"这是警告的原因。

答案 2 :(得分:1)

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

答案 3 :(得分:0)

我遇到了这个问题,需要一整堆按钮,它们需要向左偏移一点点。我删除了情节提要对齐,并在viewDidLoad中使用了需要的按钮数组来做到这一点。

func indentButtons(buttons: [UIButton?]){
    for i in 0..<buttons.count{
        buttons[i]!.contentHorizontalAlignment = .left
        buttons[i]!.titleEdgeInsets = UIEdgeInsetsMake(0, 5, 0, 0)
    }
}