2017-05-07 158 views
0

我正在努力优化我的应用程序的风景和小屏幕。我主要使用滚动视图来实现这一点。在我的一个观点中,我有一个容器视图。当我在故事板中的设备之间切换时,此容器视图看起来很完美。容器视图被映射到一个视图控制器,该视图控制器的滚动视图的顶部,底部,前导和尾部空间设置为超级视图0.因此,它应该填充容器。实际的视图控制器设置为Freeform Simulated Size,宽度为263,高度为190(滚动视图内部的确切大小)。iOS滚动视图允许滚动过去的内容

滚动视图的内部我只有标签显示信息。

这一切似乎工作正常。在较小的设备或横向上,您可以滚动查看内容并查看所有标签。

唯一的问题是您可以滚动浏览内容的所有设备和屏幕尺寸。在X轴和Y轴上。奇怪的是,在水平轴上,容器视图的宽度被专门设置为263.我使用滚动视图的唯一原因是高度。宽度没有问题,即使在较小的屏幕上也是如此。但它仍然允许用户水平滚动。

对于横向上的iPhone 4s的更具体的例子,容器视图是263宽度和90高度。但它自身的内容是263宽度和190高度。所以我希望用户能够向下滚动查看剩余的100个内容。但是目前它允许用户横向滚动,并且在向下滚动时滚动滚动内容的结尾。

我该如何解决这个问题,让用户无法滚动浏览内容?

如果您需要任何其他详细信息或信息,请让我知道。解释故事板细节有时可能有点棘手,所以我很乐意提供任何额外的细节以使其更加清晰。

回答

1

很像回答您的其他问题,关键是要明白,滚动视图内容决定了滚动区域。

假设您将“TopLabel”约束设置为Leading:0和Top:0。标签将位于内容的左上角,并将定义滚动视图的内容框架的左上角。

现在把“BottomLabel”下方的右侧,并设置约束追踪:0和底部:0

此时,自动布局不知道放在哪里顶部和左侧部分“BottomLabel”,因为可滚动区域没有完全定义。因此,如果您将约束添加到Leading:60和Top:400的“BottomLabel”,“BottomLabel”的左上角将放置在60,400处,并且可滚动区域 - 滚动视图的contentSize - 将为60 + width of BottomLabel X 400 + height of BottomLabel

为了避免滚动过去,你想看到的最后一个视图/图像/标签,您需要确保元素的约束控制滚动视图内容的宽度和高度。