iOS滚动查看允许滚动以前的内容

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

在滚动视图里面,我只有标签显示信息。

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

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

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

我怎样才能解决这个问题,使用户不能滚动浏览内容?

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

很像你的其他问题的答案,关键是要了解滚动视图的内容决定可滚动区域。

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

现在将BottomLabel放在右下方,并将约束条件设置为Trailing:0和Bottom:0。

此时,由于可滚动区域没有完全定义,自动布局不知道将“BottomLabel”的顶部和左部放在哪里。

因此,如果将约束添加到Leading:60和Top:400的BottomLabel,BottomLabel的左上angular将被放置在60,400,滚动区域 – 滚动视图的contentSize将是60 + width of BottomLabel x 400 + height of BottomLabel

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