Xcode - 打开时修改Storyboard视图的大小和位置

22

我注意到Xcode有一件非常令人恼火的事情:当我打开某些storyboard时,其中某些视图的大小和位置会被系统地更新。这对于团队合作尤其烦人。

下面是我产生这种行为的方法:

  • 我从git存储库中拉取应用程序
  • 打开受影响的storyboard,不进行任何修改
  • git diff已经向我显示了差异,例如
$ git diff
...
- <rect key="frame" x="576.99999828648401" y="11" width="170" height="20"/>
+ <rect key="frame" x="577" y="11" width="170" height="20"/>
...
- <rect key="frame" x="518.99999921768904" y="7" width="228" height="30"/>
+ <rect key="frame" x="519" y="7" width="227.99999841338541" height="30"/>

有没有其他人遇到这种情况?

问题是:
为什么我的故事板在我只打开它时就被修改了,如何防止这种情况发生?


注意:

我发现这似乎只会发生在包含在


你已经成功解决了这个问题吗?我们正在经历相同的影响(Xcode 7.2)。 - Christian
1
我不记得解决过这个问题。我只记得开始尽可能地拆分我的故事板,以减少合并冲突的可能性,并简化最终的解决方案。(当时我使用的是Xcode 4或5) - Pierre de LESPINAY
1
听起来有点疯狂,但似乎与您是否在分辨率不同的外部显示器上使用Xcode有关。将故事板拆分成较小的块仍然是一个好主意。;-) - Christian
2
你好,来自2020年,情况变得更加疯狂和恼人。只要打开一个故事板,就几乎可以保证会生成差异。你提交它们,然后再次打开相同的故事板,就会看到轻微的坐标偏移再次改回之前的值。这些“修正”似乎取决于在给定故事板上选择的设备型号,即是2x还是3x视网膜屏幕,则更改将为0.5或0.333...像素。找不到解决方法。似乎苹果公司没有人使用Git或其他工具。或者苹果公司没有人使用Xcode。因为很难不注意到这个错误。 - mojuba
1
来自2022年的问候。果然是苹果所料。 - erkanyildiz
2个回答

1
Xcode将故事板布局信息保存在XML文件(.storyboard)中。因此,对故事板的任何更改都将反映在该XML中。特别是如果您与队友一起工作,这些信息可能会经常更改。您可以尝试移动一些项目(不要更改其他内容),然后使用git存储库启动差异。您应该再次看到XML中的更改。您可以忽略git checkout中的故事板文件。但是,这没有太多意义,因为您的队友可能已经向故事板添加了新项目。
也许这也有所帮助:[Xcode changes unmodified storyboard and XIB files 如果我正确理解第一个答案,其他更改也可能触发故事板XML文件的更改。
问候 托马斯

我明白,我所说的是在不对故事板进行任何修改(仅仅是打开它)时发生的更改。 - Pierre de LESPINAY
我已经添加了一个相关讨论的链接。也许那个能帮到你。 - TomG
谢谢你提供的链接。我已经看过了(一个月前我甚至评论了答案)。我的问题有点不同,实际上我没有任何OP的问题。 - Pierre de LESPINAY
我遇到了完全相同的问题,只是打开Storyboard就会导致视图位置/大小发生变化。这是IB中非常恼人的错误。 - Adam Eisfeld

1

似乎有一个与storyboards相关的bug,但没有人在关注它。

尽可能拆分storyboards以减少合并冲突的机会,并使其最终解决变得更容易。如果您在分辨率不同的外部显示器上使用Xcode,则此问题也可能升级。

这个问题只能被减少而不能被解决。


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