警告:leading or trailing horizontal alignment before iOS 11
我在故事板文件中的一个场景上编译Xcode 9.1时遇到了警告。还有其他故事板(部署目标为iOS 10.0),但警告会显示在特定Storyboard文件的特定场景中。
如果我在显示警告的场景上将部署目标更改为iOS 11.0但是我不想这样做,则警告会被抑制。
有没有人遇到过这个案子?
答案 0 :(得分:101)
对我而言,问题在于trailing
本身使用leading
UIButton
对齐。
安全区域似乎完全可以使用 - 它向后兼容,并转换为适当的超级视图边距。
但此功能仅适用于iOS 11,因此如果您要定位较低的iOS版本,请使用标准左/右对齐。
找出造成问题的视图的最简单方法是在.xib的源代码中搜索contentHorizontalAlignment="leading"
或contentHorizontalAlignment="trailing"
答案 1 :(得分:28)
第1步:
第2步:
替换以下所有实例:
contentHorizontalAlignment="leading"
使用:
contentHorizontalAlignment="left"
第3步:
替换以下所有实例:
contentHorizontalAlignment="trailing"
使用:
contentHorizontalAlignment="right"
第4步:
编译并观察警告消失。
当你有大量需要修改的元素时,我发现这种方法更容易。 "主导"和"尾随" as' contentHorizontalAlignment' 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)
}
}