如何(轻松)在 Xcode 6 的 Interface Builder 中删除约束

Posted

技术标签:

【中文标题】如何(轻松)在 Xcode 6 的 Interface Builder 中删除约束【英文标题】:How do I (easily) delete a constraint in Interface Builder in Xcode 6 【发布时间】:2014-06-18 18:20:00 【问题描述】:

假设您选择了一个对象,并且在“实用工具”面板中打开了“尺寸选择器”。您可以看到应用于对象的约束列表。在约束列表中,您可以单击小齿轮并选择删除。你不能在 Xcode 6 中。

IB中删除约束还有几种方法:

在文档大纲中找到约束并将其删除(但可能很难找到)。 单击情节提要中的小栏并以这种方式将其删除(可能很难单击)。 双击大小选择器中的约束,这将打开属性检查器并突出显示文档大纲中的约束。当您想删除多个时,这可能会很麻烦。

不过,我想念齿轮删除功能的易用性,我想知道它是否仍然以类似的方式存在,我只是能找到它。虽然其他方式有效,但我发现自己浪费了大量时间,尤其是在使用新的 Size Classes 功能时。那么,找到一种更简单的方法来删除它们?

【问题讨论】:

我也注意到了这一点。 也许我不明白你的问题。但是,如果您在 Document Outline 中激活约束,它将在情节提要中突出显示。当你激活正确的,它应该很容易删除它。 当我通常通过选择一个对象并使用大小选择器来处理约束时。这为您提供了影响对象的约束列表,而无需搜索可能与该对象相关或不相关的长列表。文档大纲也有一个最大宽度,我经常无法阅读完整的约束,因为它被截断了。不得不在大小选择器和文档大纲之间反弹和强制也很烦人,尤其是当我们过去从未这样做过的时候。 【参考方案1】:

在 Xcode6 (Beta5) 中,当我在大小检查器中单击特定约束时,它会获得一个细蓝色边框。然后可以使用退格键删除约束。

【讨论】:

我会支持这个。在 Xcode 6 beta 5 中,您可以直接从 Size Inspector 中选择和删除约束。耶! 我刚刚在 Xcode 6.3.2 中尝试过,它只是删除了对象本身,而不是约束。即使我在 Size Inspector 中点击了约束,直到它变成深蓝色,而其他的都是灰色的。 这只是禁用约束,并没有真正删除它。我发现删除约束的唯一方法是在情节提要画布左侧的图层列表中选择它。【参考方案2】:

已接受的答案是正确的,但是对于选择位于所选视图之外的约束有太多的沮丧,因此我决定将此提示添加为另一个答案。

我找到了帮助我解决这个问题的incredible list of tips。

问题:

    您选择视图,Xcode 会显示相关约束。 您尝试选择位于所选视图之外的视图。 你失败了(以选择约束下的视图结束)

解决方案:

按住 Shift+Ctrl 并单击它,您将看到您单击的位置存在的所有视图的菜单。

要删除选定的约束,请按 delete 键。

【讨论】:

我使用 ctrl + 右键单击​​访问相同的菜单,但我将尝试您的方式,看看我是否更喜欢它。 :) 在 XCode 6.4 中我做了这些手指操,但它没有在菜单中显示“图像视图”的约束。我似乎能够访问约束的唯一方法是通过顶部上下文栏。这允许我选择约束并取消选中“已安装”。不幸的是,我找不到删除它的方法。 @nueverest 如果我的方法对您不起作用,您可以在左侧边栏(文档大纲)中选择约束。如果以这种方式选择约束,则按 delete 键会完全删除它。如果要快速卸载当前布局的约束,请选择元素,在右侧边栏中(在尺寸检查器中)选择其约束,然后按delete 键。 @DanSkeel 感谢单击“显示文档大纲”按钮并向下滚动到约束,然后按 delete 修复它。【参考方案3】:

所选答案不完整。当您从 Size Inspector 中删除约束时,您将在 Document Outline 窗格中留下约束对象。它是灰色的,这意味着它没有被使用,但仍然存在,更糟糕的是,它会影响自动布局,出现错误、警告或冲突的约束,你会发疯,直到你也从“文档大纲”窗格中删除它们。

所以:

1. Delete the constraint from the Size Inspector as in the accepted answer
2. Delete any greyed out constraints from the Document Outline

过着快乐、无拘无束的生活。

【讨论】:

有什么方法可以轻松地从文档大纲中删除它吗?当列出 10 多个约束时,寻找精确约束非常容易出错。 刚刚发现了什么,查看最新答案!【参考方案4】:

This answer from @wayne chi 是最简单的,让您不必在 Document Outline 中寻找约束:

双击灰显的约束(将焦点切换到约束),然后按删除。这将删除约束。

【讨论】:

当你想回到约束列表时怎么办?当我双击时,我只能看到那个约束,但我不知道如何返回查看其他约束。 @TimSim 双击后,你会看到约束。按键盘上的delete 键。【参考方案5】:

有时,最简单的方法是在 Xcode 中关闭文件并使用文本编辑器对其进行编辑。 :-/

【讨论】:

【参考方案6】:

如果您想从 viewController 中删除所有约束,只需关闭自动布局,然后重新启用(或不启用),所有约束都会消失。

【讨论】:

以上是关于如何(轻松)在 Xcode 6 的 Interface Builder 中删除约束的主要内容,如果未能解决你的问题,请参考以下文章

如何轻松理解Xcode 项目管理

Xcode:如何轻松地将我的 Int 值从 UIview 传递到下一个 UIViewcontroller?

在 Universal Xcode 6 项目中仅停止 iPhone 屏幕旋转

如何下载 xcode 6 测试版?以及如何将 xcode 5 和 xcode 6 保存在同一台机器上? [关闭]

零代码,用xcode轻松搞定交互动画-为设计师准备的Xcode教程

如何在 Xcode 6 中安装 FLTK 项目模板?