Swift - 为什么ScrollView没有全屏?

时间:2016-06-06 06:16:36

标签: ios uiviewcontroller uiscrollview autolayout

我已将ScrollView插入UIViewController并拖动ScrollView以填充下方导航栏和RAM标签之间的空格:

enter image description here

但是当我运行应用程序时,ScrollView没有填满空格:

enter image description here

请帮帮我!非常感谢你。

P / S:抱歉我的英语不好。

6 个答案:

答案 0 :(得分:2)

滚动视图并没有掩盖整个事情,因为您在更大的手机上运行应用程序。最简单的解决方案是在iPhone 5上运行应用程序。

然而,如果您想在所有尺寸的iOS设备上解决问题,则需要添加约束

约束是告诉视图何时以及应该调整大小以及应该放置它的位置的事物。

要添加约束,只需选择要添加约束的视图,然后转到右下角。您将看到4个按钮:

  • 最左边的按钮用于在堆栈视图中嵌入视图。这是iOS 9的一项功能。如果您的部署目标较低,请忽略它。
  • 左边的第二个按钮用于添加与对齐相关的约束 - 视图的边缘,基线是什么以及它在X和Y轴上的位置:

enter image description here

  • 左边的第三个按钮用于添加与边距,宽度,高度相关的约束以及要求调整大小时宽度和高度应如何变化(例如,保持纵横比):

enter image description here

  • 最右边的按钮用于让Xcode决定你应该添加哪些约束。我认为大多数时候它的选择都没问题。有时候,你仍然需要在它运作之前做一些调整。

“那么......我应该添加什么约束?”你问。

好吧,我想我应该教你如何思考什么时候想要添加一个约束。通过这种方式,您可以在将来自行解决。

你应该首先让Xcode猜出你想要的约束。只需单击最右侧的按钮,然后单击“重置为建议的约束”。如果Xcode可以正确使用,这可以节省大量工作。所以请记住要先做到这一点。

然后,在各种设备上运行您的应用,看看视图的位置,大小和对齐方式是否符合您的预期。如果不是,您可能必须添加和/或删除一些约束。

例如,如果您发现您的视图在不同设备上的大小始终相同,(这可能会很糟糕,因为这意味着某些内容会在较小的设备上消失),这可能是因为Xcode添加了宽度和/或视图的高度约束。您应该删除它,以便不修复视图的宽度和/或高度。

您可以在视图层次结构中找到视图的约束:

enter image description here

只需选择约束并按删除即可。

答案 1 :(得分:0)

取消选中调整子视图选项并添加

scrollview.view.autoresizingMask = [.FlexibleWidth,.FlexibleHeight]

enter image description here

答案 2 :(得分:0)

您需要为scrollView添加约束。将前导和尾随约束设置为0.固定scrollView的高度,也不要忘记设置顶部布局约束。您可以固定高度或向页面控件添加底部布局约束。

约束非常重要,正确设置它更为重要。查看Apple Documentation - Working with constraints in IB

答案 3 :(得分:0)

取消选中约束边距,并将四个间距限制中的每一个添加到最近邻居。

答案 4 :(得分:0)

我的猜测(根据我们提供的小信息)是您从滚动视图到视图顶部创建一个约束,其值等于导航栏的高度。将此约束的值设置为0.

答案 5 :(得分:0)

只需将 4 个约束设置为 0 到您需要的区域,然后取消选中此处约束选项卡中的“内容布局指南”复选框。它会自动调整到您指定的区域。

The checkbox to uncheck