这个警告可能会让人感到烦恼,它是在Xcode 6.1.1版本之后出现的。主要问题是你无法通过单击警告来轻松找到引用的约束条件。我猜这是一个错误,迟早会得到修复。
然而,在此期间,您可以使用这个小技巧:
在日志中显示
... snip ...
/Devel/MyCrippledAppNG/MyCrippledApp/Main_iPad.storyboard:Dlb-cb-nWC: warning: Constraint referencing items turned off in current configuration. Turn off this constraint in the current configuration.
/Devel/MyCrippledAppNG/MyCrippledApp/Main_iPad.storyboard:6Ze-mO-v5N: warning: Constraint referencing items turned off in current configuration. Turn off this constraint in the current configuration.
/Devel/MyCrippledAppNG/MyCrippledApp/Main_iPad.storyboard:9av-xw-u1o: warning: Constraint referencing items turned off in current configuration. Turn off this constraint in the current configuration.
/Devel/MyCrippledAppNG/MyCrippledApp/Main_iPad.storyboard:RPt-Uf-vaZ: warning: Constraint referencing items turned off in current configuration. Turn off this constraint in the current configuration.
/Devel/MyCrippledAppNG/MyCrippledApp/Main_iPad.storyboard:Rnc-4M-7jV: warning: Constraint referencing items turned off in current configuration. Turn off this constraint in the current configuration.
/Devel/MyCrippledAppNG/MyCrippledApp/Main_iPad.storyboard:epJ-D9-KEF: warning: Constraint referencing items turned off in current configuration. Turn off this constraint in the current configuration.
/Devel/MyCrippledAppNG/MyCrippledApp/Main_iPad.storyboard:4HC-Gu-01w: warning: Constraint referencing items turned off in current configuration. Turn off this constraint in the current configuration.
... snip ...
请注意,对于2016年5月的Xcode,令人讨厌的是,在某些情况下您必须退出并重新启动Xcode才能清除此警告。
请注意,令人困惑的是,同样的错误可能是由与之无关的问题引起的(这似乎是Apple的一个漏洞或错误语言的使用):如果您有IBInspectable
的项,并且碰巧在Swift文件中将其重命名。 Xcode不会为您删除旧名称的UserDefinedRuntimeAttributes。只需单击 "Identity Inspector"(右侧面板上的项目3)并删除虚假的项目即可。
当您在故事板中停用一个视图但未停用该视图的约束时,会触发此消息。
例如,您停用了一个按钮,但仍有一些与该按钮相关联的约束。它可能是内在约束(如高度或宽度)或相对约束(如与另一个视图的距离)。
您必须关闭涉及该视图的每个约束,并且必须手动完成。这里的Xcode非常谨慎,不会替您完成这项工作。
这个解决方法对我有效。
因为我从开发在Xcode 5中的项目中复制了多个项到Xcode 6中,而Xcode 6中的storyboard支持多个布局,因此对于每个约束,我需要将其安装在当前配置中。
例如,我正在使用“紧凑宽度|常规高度”,对于约束,我需要像下面这样设置:
在我检查并设置了项目中的所有数百个约束后,清理并构建,警告终于消失了。
详细解释
其他答案没有问题。我只是想引起注意,原始警告中的措辞以及可以显示在工作流程中的一些用例。
当前配置中关闭了约束引用项。
这意味着某个项目(通常是一个通常可见的控件或自定义视图)引用了一个或多个约束,但被关闭(禁用或复选框“已安装”未选中)。例如,如果您决定要将故事板中的控件或视图移动到主视图之外(或者在使用大小类时有时会看到),则如果控件具有附加的约束,则可能会看到此警告。
推荐的解决方案:
在当前配置中关闭此约束。
两种修复方法
文档大纲
可视化地,在故事板中打开文档大纲,并查找引用您控件/视图的灰色约束,这些控件/视图位于主视图之外(扩展大纲,单击约束,查看属性检查器,向下移动以快速查看)。然后从此上下文(大小类)中删除该约束。例如,在我的情况下,我只是保留控件,直到稍后决定在哪里显示它,因此我选择完全删除有问题的约束,直到稍后再处理。但在大小类中,我会使用属性检查器中的“已安装”复选框来卸载当前上下文中的约束。
日志导航器/查找工具
也可以继续使用日志导航器通过故事板上给每个对象分配的唯一标识符找到有问题的控件。在日志中,它将出现在黄色突出显示的文本之前,通常采用如我上面示例所示的形式:jvj-mY-DHf
使用标识符,可以使用Xcode中的查找工具定位并删除(完全)或卸载(对于当前上下文)有问题的约束。
如果您喜欢Xml及其简洁性,您还可以打开Storyboad源代码,找到有问题的唯一标识符,并删除适当的xml块。
wAny hAny
是常见情况)。在这种情况下,只需在 Interface Builder 中选择不同的大小类即可解决问题。我以为这是由于其他答案而持续存在的限制,但实际上是因为我之前删除的一个“插座”仍然存在。解决方法如下:
最坏的情况是您删除所有插座,然后再次连接它们。问题解决!
如@BadCat's answer所述并得到很好的指导, 我按照步骤进行了操作,只敢再走一步!
在BadCats答案的最后一步之后执行以下步骤:
第一步:
我在界面构建器中选择了约束条件,然后记住它是什么,然后将其删除。
第二步:
构建XCode项目,它会显示可能增加的警告数量。这是因为您已删除需要编译的约束条件。所以,进入第三步!
第三步:
重新添加您记住的约束条件(您删除的那个)。 然后再次构建它!
对于我来说,只需这样做就可以消除警告! 我想这对某些人也有效!
原因:
据我所理解,导致这个警告的问题是,我有一个与IBOutlet连接的标签,但它的名称以大写字母开头。因此,我在ViewController中将其重命名为一个简单的字母,并在IB中进行更改。我删除了过去的IBOutlet,然后去连接它到新命名的属性名称并连接。然后我注意到出现了一个新的警告。
首先,我在这个线程中也尝试了answer,但没有帮助!
干杯!