Storyboard中的奇怪行为(运行应用时缺少视图)

时间:2016-06-04 15:15:02

标签: ios xcode uistoryboard xcode-storyboard ios-autolayout

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

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

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

enter image description here

如您所见,标签上的约束非常简单。右上角的按钮(蓝色所在的位置)只有顶部空间和尾随空格。但是当我运行应用程序时,看不到标签:

enter image description here

我也经常得到:An internal error occurred. Editing functionality may be limited.

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

3 个答案:

答案 0 :(得分:1)

您可能需要删除标签的前导&尾随空格,如果要使标签居中,则添加添加约束调用“在容器中水平居中”。

如果您不熟悉,可以在here了解有关自动布局的详情。

here

答案 1 :(得分:1)

您有硬编码的前导和尾随约束常量。它们总计达518.这可能会使您的标签宽度为负。您没有在Storyboard中看到它,因为您正在使用推断的模拟指标。如果换成3.5英寸iPhone,你会马上看到它。

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

答案 2 :(得分:1)

您已设置标签的前导和尾随。这肯定会发生,因为你设置了错误的约束。检查视图控制器的大小,您可以在其中设置约束,它(任意宽度,任何高度)。

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

否则你可以修改你的宽度并选择前导和尾随并将其设置为“小于等于”而不是“等于”。

虽然设计想象自己持有对象时要记住可能发生的所有可能性,然后相应地设置约束。用户可以在任何尺寸的iPhone和iPad上运行您的应用程序。因此,设计应该不会影响其中的对象。

如果出现任何问题,请尝试查看调试,然后您肯定可以找到错误的位置。