我每次启动Xcode时都必须在storyboard中更新所有内容的框架

时间:2015-08-28 20:30:10

标签: ios xcode storyboard

所以每次我在Xcode中打开我的项目时,都会有100个警告,因为每个UI对象的帧都已被移动。我必须花时间去每个UIViewController并更新它上面的帧。

这是否有原因?我怎样才能解决这个问题?我需要提及的任何其他信息?

6 个答案:

答案 0 :(得分:4)

您是否为代码使用存储库?可能有一些配置文件丢失,可能没有正确评论

答案 1 :(得分:4)

在我的情况下,这是因为我打开Xcode项目时为我设置了约束和布局的size-class。因此,请确保大小类保持与应用布局相同,或者如果Xcode已修改它,请更改它。

如果上面的内容对您不起作用,您可以尝试使用Xcode创建的本地存储库,并在退出Xcode之前提交代码。

希望这会有所帮助!!

答案 2 :(得分:1)

我相信之前曾问过这个问题: Interface Builder degrades storyboards, resizes and repositions views in small increments

我还没有看到问题的解决办法,但我在那里发布的答案可能也适用于此。 https://stackoverflow.com/a/28577800/682574

至少有一个来源是故事板将布局解析为全像素边界(x = 7.0,y = 10.0)或部分边界(x = 7.5,y = 10.5)。我可以告诉您,每次查看故事板时都可以重新计算,并且实际上根据当前显示环境确定舍入。

您可以通过在视网膜显示屏上查看故事板然后在非视网膜显示屏上查看它来故意引起此行为。使用我的双显示器显示器,如果我只是将故事板从一个屏幕(视网膜5k)拖到另一个屏幕(非视网膜),它将产生大量未对准的约束。不幸的是,将其移回并不能解决它们!为自己尝试一下(或者不要......纠正是痛苦的。)

在团队环境中,只要有不同设置的两个人查看相同的故事板,就很容易看到这种情况会如何发生。

如何解决?我没有听说过不幸的工作流程可以正确地纠正或避免这个问题。

答案 3 :(得分:0)

以下是我间歇性错位观看的几个原因。我不确定这些问题中的任何一个是否对您所看到的问题负责 - 通常这些会导致一些视图在这里和那里放错位置,而不是故事板中的每个视图。但我已经列出了这些内容,以防它有所帮助。

  • 不同的团队成员可能正在使用不同版本的Xcode,这可能会使某些视图略有不同,并且肯定会改变故事板文件"工具版本"等等。
  • 约束通常不满意它们的分数宽度/高度。这可能难以检测 - 例如,您可能有一个视图,其固有高度是在视图中垂直居中的奇数个像素,其高度是偶数个像素,导致内部视图从半像素开始在重新打开故事板时,偏移并希望重新定位到更低或更高。

答案 4 :(得分:0)

对于xib文件,您可以轻松编写自动更新帧的脚本:

ibtool input.xib --update-frames --write input.xib

但是,您不必担心这些警告:帧将在执行期间自动调整。

答案 5 :(得分:0)

由于具有4k外部显示器,可能会发生这种情况。我团队中的每个人都没有这种问题,只有我。

打开Xcode后尝试将逻辑点与物理像素对齐,所以一切都移动约0.5点。