【问题标题】:Storyboard randomly modifying contraints故事板随机修改约束
【发布时间】:2015-02-13 18:17:08
【问题描述】:

我时不时地注意到我的故事板发生了变化(旁边是“m”)。我运行我的应用程序,发现我的视图不合适。如果我在版本编辑器中检查 Storybaord XML 的先前版本和当前版本之间的差异,那么当我没有触及文件中的任何内容时,Storyboard 似乎已经进行了更改。我必须放弃这些更改才能让事情再次正常工作。我不得不承认我的布局包含警告。它非常复杂(有很多视图),但它可以工作,而且这种特别的布局只包含警告,没有错误。有没有其他人注意到这种行为?这是令人难以置信的烦人。我可以通过丢弃更改来修复它,但这并不完全理想。

【问题讨论】:

  • 是的,我除了storyboard之外还有个“M”,老实说这很蠢,但是view的位置是正确的,可能是Xcode的bug。还有可能是你在打开故事板时不小心移动了它们。
  • "您也有可能在打开情节提要时错误地移动了它们。"我考虑过这一点,但上次它发生在我修复它并且没有触摸鼠标或键盘之后立即发生。它变得非常烦人。每次发生都会花费我 1-2 分钟。
  • 我也有类似的行为。我一直在重新运行 xcode 项目,情节提要会更改我的 UITableViewCell 大小。
  • 很高兴听到我不是唯一一个!你们的自动布局是否有警告/错误?
  • 注意到了同样的情况...Xcode 似乎随机更改约束...也许查看故事板的原始 XML 也可以为这个问题提供见解。

标签: ios objective-c xcode storyboard interface-builder


【解决方案1】:

我使用故事板已经有一段时间了。除了故事板之外,我还面临着获得“M”的问题。我所做的是正确设置布局约束并从情节提要中删除与自动布局相关的所有警告,但没有必要删除它们我后来意识到的。您只需提交代码,因为您将使用 git copy。一旦提交完成,'M' 将消失。即使您在设置带有约束的布局后没有触摸情节提要,也得到“M”的原因可能是由于三个原因。
1.) 您可能正在处理本地副本,并且在创建项目时您可能没有取消选中 git 存储库。

您只需在创建新项目时取消选中即可。
2.) 如果您正在处理 svn 的源代码,那么您需要将所有文件连同您的故事板一起提交。它将删除您的故事板旁边显示的“M”。
3.) 每次打开故事板时,xml 中的 id 都会发生变化,因此由于这个原因,除了故事板之外,您还会得到“M”。

【讨论】: