在界面构建器中导致此警告的原因是什么?
属性不可用 布局属性相对于8.0之前的iOS版本的布局边距。
我正在使用XCode 6 Beta。警告指向xml源中与属性无关的行。
答案 0 :(得分:37)
由于我已经创建了约束,答案是单击约束,然后查看Utilities栏(右侧)。如下图所示,单击某个项目,然后确保未选中“相对于边距”。
答案 1 :(得分:13)
当您在Xcode 6中添加约束时,您可以选择“约束到边距”,这会创建不同的约束并且无法读取,例如,在Xcode 5中。 在没有此选项的情况下创建约束,警告应该消失。此约束将在iOS 8上提供。
如果您已经创建了约束,我们可以更改它,单击约束并进行编辑。选择第二项时,您可以取消选中“相对于保证金”选项(如GLee答案中所述。
答案 2 :(得分:11)
如果您无法找到警告的来源,可以使用此grep查找。
在项目目录的终端中运行:
grep -C 6 -nr Margin .
6表示在比赛前后显示的上下文行数。</ p>
答案 3 :(得分:3)
根据Gasper Kolenc打开故事板作为源代码非常有用。以下是我解决此问题的经验信息:
在故事板源代码中搜索&#34; margin&#34;。您将看到如此行。
约束firstAttribute =&#34; trailingMargin&#34; secondItem =&#34; PGB-8W-IHT&#34; secondAttribute =&#34;尾部&#34;常数=#&34; 8&#34; ID =&#34; NKP-UZ-7Xm&#34; /
找到其中一个属性的ID(上例中的Pgb-8w-IHT)。
向上滚动以查找此约束所属的对象。类似的东西:
tableViewCell contentMode =&#34; scaleToFill&#34; selectionStyle =&#34;默认&#34;
切换回情节提要视图并显示身份检查器窗口。
搜索您在上面找到的对象的子视图,以在身份检查器上查找ID(Pgb-8w-IHT)。
找到后,检查约束以找到需要删除和重新创建的约束,而不选择约束边距选项(使用常量=&#34;&#34;作为提示&#34;。< / p>
答案 4 :(得分:-2)
就我而言,我必须取消选中&#34;使用自动布局&#34;从我在文件检查器中的故事板,并重做我的应用程序中的所有约束,旧的方式与缩小/放大红色矩形。
大小类已被禁用,目标是IOS 7.1。
但是如果你有太多的View Controllers,并且已经完成了所有约束,请好好想一想。禁用自动布局时,Xcode会清除所有自动约束并恢复为旧模型。然后你必须再做一切工作。
这是我摆脱属性不可用警告的唯一方法。