故事板随机修改约束

4

时不时地,我会注意到我的故事板发生了变化(旁边有“m”字样)。我运行我的应用程序,发现我的视图位置错乱。如果我在版本编辑器中检查故事板XML的先前版本和当前版本之间的差异,就会发现当我没有更改文件时,故事板已经做出了更改。我必须放弃这些更改才能让事情重新正常工作。我必须承认我的布局包含警告。它非常复杂(有很多视图),但它确实有效,并且特别是此布局仅包含警告,没有错误。还有其他人注意到这种行为吗?这非常令人恼火。我可以通过放弃更改来解决它,但这并不完全理想。


是的,我在故事板旁边也有"M",说实话这是个愚蠢的问题,但视图的位置是正确的,可能是Xcode的一个bug。此外,当您打开故事板时,您可能会不小心移动它们。 - danypata
也有可能是您在打开故事板时不小心移动了它们。我考虑过这一点,但上次它发生在我修复后立即发生,而我没有触摸鼠标或键盘。这变得非常恼人。每次发生这种情况都会耗费我1-2分钟的时间。 - user470763
我也遇到了类似的问题。每次重新运行Xcode项目时,我的Storyboard都会更改UITableViewCell的大小。 - gronzzz
很高兴听到我不是唯一一个有这个问题的人!你们两个的自动布局是否有警告或错误? - user470763
注意到相同的问题... Xcode 似乎会随机更改约束... 或许查看故事板的原始 XML 也可以为解决这个问题提供一些见解。 - nburk
@nburk 通过版本编辑器查看原始XML是我轻松还原更改的方法。当问题发生并且您打开版本编辑器时,通常会有一个包含许多(5-10)更改的部分。我会放弃这些更改中的每一个来解决问题。不幸的是,我没有看到任何指向原因的线索。 - user470763
1个回答

0
我已经使用Storyboard工作了相当长的时间。我遇到了在Storyboard旁边出现“M”的问题。我所做的是正确设置布局约束并从Storyboard中删除与自动布局相关的所有警告,但后来我意识到不必要将它们全部删除。你只需要像使用git复制一样提交代码。一旦提交完成,“M”就会消失。即使在设置了带有约束的布局之后没有触摸Storyboard,你仍然会得到“M”的原因可能有三个。
1.) 你可能正在使用本地副本工作,在创建项目时可能没有取消选中git存储库。
enter image description here
你只需要在创建新项目时取消选中即可。
2.) 如果你正在使用svn源,则需要提交你的所有文件以及你的Storyboard。这将删除显示在你的Storyboard旁边的“M”。
3.) 每次打开Storyboard时,xml中的id都会更改,因此您会在Storyboard旁边得到“M”。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接