【问题标题】:Interface Builder: How to clean up the deleted constraint?Interface Builder:如何清理已删除的约束?
【发布时间】:2014-11-14 19:25:49
【问题描述】:

我使用 command-delete 删除了 IB 中 Map View 小部件的一些约束。如附图所示,约束实际上只是淡化了,而不是完全删除。

我已尝试保存文件并重新打开项目,但似乎它们不会被 XCode 删除。

我怎样才能删除它们?

编辑

这是我在尺寸检查器窗口中看到的

我正在使用 XCode 6 (6A313)

【问题讨论】:

  • 这与尺寸等级有关。如果您在 AnyAny 中添加一个约束,然后在另一个尺寸类中将其删除,例如 AnyCompact,那么它将如下所示。这是因为您已从该尺寸类别中公开删除它。不是所有人。
  • @Fogmeister 感谢您的评论。但是,我认为我没有在整个过程中明确更改尺寸等级。我会谷歌更多关于这个
  • 我确定就是这样。这是约束看起来像这样的唯一原因。
  • @Fogmeister 我毫不怀疑你是对的。我对自动布局知之甚少。我不记得更改尺码等级,但我可以在不知情的情况下更改它。再次感谢,感谢您的帮助。
  • 如果您选择约束并查看左侧的检查器面板,它应该会告诉您该约束适用于哪些尺寸等级。您也可以从那里删除它,但您必须选择约束。不仅仅是与之相关的视图。

标签: ios autolayout xcode6


【解决方案1】:

约束消失了,因为您从一个视图的大小检查器中删除了它们,但没有从另一个相关视图中删除它们。

如果您在 2 个视图之间添加约束,您将在两个视图的大小检查器中看到该约束。如果您从一个视图的尺寸检查器中删除约束,您仍然会在另一个视图的尺寸检查器中看到它,并且您还会在视图控制器场景树中看到该约束淡化。

您可以通过从视图控制器场景树(或从场景中)中删除约束来完全删除约束(从两个视图中)。

【讨论】:

    【解决方案2】:

    在左侧面板中选择它并按退格键永久删除。

    【讨论】:

    • 这对我也有用。事实证明,灰色的约束(不知何故,莫名其妙地)导致“无法同时满足约束”错误。因此,我的一项必要约束在运行时被删除,以保留已删除(和不需要的!)约束之一。
    • 谢谢你,改用 cmd+backspace。 cmd+退格键有什么作用?当前尺寸等级的卸载快捷方式?
    • 现在只需 DELETE 键即可从当前尺寸等级配置中“卸载”约束,但它仍可用于其他配置。那么为什么它仍然可能导致约束冲突。
    【解决方案3】:

    如果您想删除与特定对象相关的所有约束,请转到“解决自动布局问题按钮”,该按钮出现在编辑器底部的小菜单栏中,选择“清除约束”。

    如果您想删除任何对象的特定约束,然后选择对象-> 转到大小检查器-> 单击出现在约束上的第一个右键-> 删除。

    如果您想删除与特定 xib 相关的所有约束,请转到“解决自动布局问题按钮”并选择“清除视图中的所有约束”

    【讨论】:

      【解决方案4】:

      而不是使用 cmd 和删除,选择视图,转到大小检查器并删除那里的约束, 这是供您参考的屏幕截图。

      【讨论】:

      • 感谢您的回答。但是,在我的 XCode 中,我没有找到屏幕截图中的“删除”选项。我已经更新了问题并附上了我在 Size Inspector 中看到的内容。
      猜你喜欢
      • 2017-02-24
      • 1970-01-01
      • 2012-03-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-12-17
      • 2015-08-12
      相关资源
      最近更新 更多