8.0之前的iOS版本上的属性不可用警告

时间:2014-08-12 23:47:57

标签: ios interface-builder

在界面构建器中导致此警告的原因是什么?

属性不可用 布局属性相对于8.0之前的iOS版本的布局边距。

我正在使用XCode 6 Beta。警告指向xml源中与属性无关的行。

5 个答案:

答案 0 :(得分:37)

由于我已经创建了约束,答案是单击约束,然后查看Utilities栏(右侧)。如下图所示,单击某个项目,然后确保未选中“相对于边距”。

Relative to margin screenshot

答案 1 :(得分:13)

当您在Xcode 6中添加约束时,您可以选择“约束到边距”,这会创建不同的约束并且无法读取,例如,在Xcode 5中。 在没有此选项的情况下创建约束,警告应该消失。此约束将在iOS 8上提供。

enter image description here

如果您已经创建了约束,我们可以更改它,单击约束并进行编辑。选择第二项时,您可以取消选中“相对于保证金”选项(如GLee答案中所述。

答案 2 :(得分:11)

如果您无法找到警告的来源,可以使用此grep查找。

在项目目录的终端中运行:

grep -C 6 -nr Margin .

6表示在比赛前后显示的上下文行数。<​​/ p>

答案 3 :(得分:3)

根据Gasper Kolenc打开故事板作为源代码非常有用。以下是我解决此问题的经验信息:

  1. 在故事板源代码中搜索&#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; /

  2. 找到其中一个属性的ID(上例中的Pgb-8w-IHT)。

  3. 向上滚动以查找此约束所属的对象。类似的东西:

    tableViewCell contentMode =&#34; scaleToFill&#34; selectionStyle =&#34;默认&#34;

  4. 切换回情节提要视图并显示身份检查器窗口。

  5. 搜索您在上面找到的对象的子视图,以在身份检查器上查找ID(Pgb-8w-IHT)。

  6. 找到后,检查约束以找到需要删除和重新创建的约束,而不选择约束边距选项(使用常量=&#34;&#34;作为提示&#34;。< / p>

答案 4 :(得分:-2)

就我而言,我必须取消选中&#34;使用自动布局&#34;从我在文件检查器中的故事板,并重做我的应用程序中的所有约束,旧的方式与缩小/放大红色矩形。

大小类已被禁用,目标是IOS 7.1。

但是如果你有太多的View Controllers,并且已经完成了所有约束,请好好想一想。禁用自动布局时,Xcode会清除所有自动约束并恢复为旧模型。然后你必须再做一切工作。

这是我摆脱属性不可用警告的唯一方法。