故事板中的奇怪行为(运行 应用程序时缺少视图)

Strange behaviour in Storyboard (Missing view when running app)

在过去的几个月里,我一直在用代码进行所有布局,以练习自动布局。

我决定回到 Storyboards 并且已经后悔了 :-)。我一直在尝试使用包括 UIStackView 在内的多个视图进行布局,但出现了很多错误。我想也许我对 StackView 做错了,所以我决定删除除了按钮和标签之外的所有内容。

带有标签和按钮的简单视图如下所示:

可以看到,标签上的约束非常简单。右上角的按钮(蓝色所在的位置)只有顶部 space 和尾部 space。然而,当我 运行 应用程序时,标签是看不到的:

我也不断得到:An internal error occurred. Editing functionality may be limited.

有没有其他人经历过这种奇怪的行为?

您可能需要删除标签的前导和尾随 space,并添加添加约束调用 "Center Horizontally in Container" 如果您想让标签居中。

如果您不太了解自动版式,可以在 here 中了解更多。

您对前导和尾随约束常量进行了硬编码。它们加起来为 518。这可能会使您的标签宽度为负数。您在 Storyboard 中看不到它,因为您使用的是推断的模拟指标。换成3.5寸的就可以看到了iPhone.

我认为更好的方法是删除前导和尾随约束并将标签在超级视图中水平居中。如果需要,您可以在标签上设置固定宽度。

您已经设置了标签的首尾。这肯定会发生,因为你设置了错误的约束。检查设置约束的视图控制器的大小,它的(任何宽度,任何高度)。

现在,检查您 运行 的尺寸,它的尺寸(紧凑宽度,常规高度)。如果你 运行 它在 iPad 中,你会找到你的标签。由于您没有固定标签的宽度,标签在 运行 时会被压缩。尝试设置标签的宽度并删除前导或尾随约束。

否则,您可以固定宽度和 select 前导和尾随并将其设置为 "less than equal to " 而不是 "equals to"。

在设计时想象自己拿着物体,牢记可能发生的所有可能性,然后相应地设置约束。用户可以 运行 任何大小的应用程序 iPhone 和 iPad。因此,设计应该不会影响其中的对象。

如果出现任何问题,请尝试查看调试,那么您肯定可以找出哪里做错了。