mon*_*ono 322 ios autolayout xcode6 ios8
我用Xcode6 beta6打开了一个现有的iOS项目,Xcode为Storyboard和Xib文件列出了以下警告:
自动首选最大布局宽度在8.0之前的iOS版本上不可用
我尝试通过将宽度设置为显式来解决警告,如下所示:

然而,这并未解决警告.他们怎么能被删除?
mem*_*ons 373
更新3:如果部署目标设置为7.1
,则numberOfLines设置为除1之外的任何标签也可以触发此警告.这可以通过新的单视图项目完全重现.
重现步骤:
我提交了以下雷达:
rdar:// problem/18700567
更新2:
不幸的是,在Xcode 6的发布版本中再次出现这种情况.请注意,您可以在大多数情况下手动编辑storyboard/xib来解决问题.Per Charles A.在下面的评论中:
值得一提的是,您很容易意外地引入此警告,并且警告本身无助于找到作为罪魁祸首的标签.这在复杂的故事板中是不幸的.您可以将故事板作为源文件打开,并使用正则表达式
<label(?!.*preferredMaxLayoutWidth)进行搜索,以查找省略preferredMaxLayoutWidth属性/值的标签.如果在这些行上添加preferredMaxLayoutWidth ="0",则与标记显式和设置值0相同.
更新1:
此错误现已在Xcode 6 GM中修复.
原始答案
这是Xcode6-Beta6和XCode6-Beta7中的一个错误,现在可以安全地忽略.
苹果开发者论坛上的一位苹果工程师对此漏洞说:
首选的最大布局宽度是UILabel上的自动布局属性,允许它自动垂直增长以适合其内容.6.0之前的Xcode版本会在设计时将多行标签的preferredMaxLayoutWidth设置为当前边界大小.如果水平布局发生更改,则需要在运行时手动更新preferredMaxLayoutWidth.
iOS 8增加了对在运行时自动计算preferredMaxLayoutWidth的支持,这使得创建多行标签变得更加容易.此设置不向后兼容iOS 7.为了支持iOS 7和iOS 8,Xcode 6允许您在尺寸检查器中为preferredMaxLayoutWidth选择"自动"或"显式".你应该:
如果以iOS 8为目标,请选择"自动"以获得最佳体验.如果定位<iOS 8,请选择"明确".然后,您可以输入要设置的preferredMaxLayoutWidth的值.在选中此框时,启用"显式"默认为当前边界大小.
如果(1)您正在使用自动布局,则会出现警告,(2)为多行标签设置"自动"[您可以在尺寸检查器中检查标签],以及(3)您的部署目标<iOS 8.
似乎该错误是针对非自动布局文档出现此警告.如果您看到此警告但未使用自动布局,则可以忽略该警告.
或者,您可以使用故事板或相关xib上的文件检查器来解决此问题,并将"Build for for"更改为"Build for iOS 8.0 and Later"

smi*_*Bot 315
要在大型故事板中查找问题标签,请按照以下步骤操作.


接下来,将您的故事板显示为源文件.

搜索.你应该能够通过查看内容很容易地从这里告诉它是什么标签.

一旦找到标签,对我有用的解决方案是将"首选宽度"设置为0.

顺便说一句,您可以通过选择项目并查看标识检查器,快速获取界面项的ID.非常便利.

Tib*_*abo 36
您可以在不打开故事板作为源的情况下解决此问题.如果numberOfLines!= 1且部署目标<8.0,则由UILabels触发此警告
如何找到它?



Ale*_*ngo 23
解决方案很简单
只需为iOS 8及更高版本启用Builds

| 归档时间: |
|
| 查看次数: |
99761 次 |
| 最近记录: |