我用Xcode6 beta6打开了一个现有的iOS项目,Xcode列出了以下对Storyboard和Xib文件的警告:
自动首选最大布局宽度在iOS版本中不可用 8.0以前版本
我尝试通过设置宽度来解决警告,如下所示:
然而,这并没有消除警告。如何去除?
我用Xcode6 beta6打开了一个现有的iOS项目,Xcode列出了以下对Storyboard和Xib文件的警告:
自动首选最大布局宽度在iOS版本中不可用 8.0以前版本
我尝试通过设置宽度来解决警告,如下所示:
然而,这并没有消除警告。如何去除?
当前回答
解决方法很简单
只需要启用iOS 8及更高版本的构建即可
其他回答
因为我没有50的声誉,Stackoverflow不会让我评论第二好的答案。发现了在Storyboard中寻找罪犯标签的另一个技巧。
因此,一旦你知道了标签的id,在一个单独的选项卡中打开你的故事板,显示视图控制器,只需执行F命令和V命令,就会直接带你到那个标签:)
我有这个问题,并能够通过添加约束来确定标签的最大值来修复它。
当删除多行标签时,没有约束设置来强制父视图内的宽度。这就是新的PreferredMaxWidth开始发挥作用的地方。在iOS 7和更早的版本上,你必须自己定义最大宽度。我只是在标签的左右两侧添加了一个10px的约束。
您还可以添加<= width约束,这也可以解决这个问题。
所以这实际上不是一个bug,你只需要自己定义最大宽度。在其他答案中提到的显式选项也可以工作,因为你正在设置这个宽度值,但是如果你想要根据父宽度改变最大宽度,你必须修改这个值(因为你已经显式地设置了宽度)。
我上面的解决方案确保了无论父视图有多大,宽度总是保持不变。
总而言之,对于我来说,按照上面的两条指令来更改numberOfLines = 0为1或更大的任何实例,并手动将preferredmaxlayoutidth ="0"添加到故事板源代码中的每个标签实例中,可以修复我的所有警告。
解决方法很简单
只需要启用iOS 8及更高版本的构建即可
您可以在不将故事板作为源打开的情况下修复此问题。 如果numberolines !=1并且部署目标< 8.0,UILabels将触发此警告
如何找到它?
转到Issue Navigator (CMD+8)并选择带有警告的最新构建 找到警告(s)(搜索“自动首选最大布局”)并按下右边的展开按钮 找到UILabel的对象ID 打开Storyboard并搜索(CMD+f)对象。它将选择并突出显示UILabel 根据其他人的建议,设置Preferred Width = 0 "Explicit"