我正在努力优化我的横向和小屏幕应用。我主要使用滚动视图来实现这一目标。在我的一个视图中,我有一个容器视图。当我在故事板中的设备之间切换时,此容器视图看起来很完美。容器视图映射到视图控制器,该视图控制器具有滚动视图,其顶部,底部,前导和尾随空间设置为superview 0.因此它应该填充容器。实际视图控制器设置为自由形式模拟大小,宽度为263,高度为190(滚动视图内部内容的确切大小)。
在滚动视图的内部,我只有显示信息的标签。
这一切似乎都很好。在较小的设备或横向上,您可以滚动查看内容并查看所有标签。
只有问题在于您可以滚动浏览内容的所有设备和屏幕尺寸。在X轴和Y轴上。在水平轴上有什么奇怪的,容器视图的宽度专门设置为263.我使用滚动视图的唯一原因是高度。即使在较小的屏幕上也没有宽度问题。但它仍然允许用户水平滚动。
有关横向iPhone 4s的更具体示例,容器视图的宽度为263,高度为90。但它自己的内容是263宽度和190高度。所以我希望用户能够向下滚动以查看其余100个内容。但是目前它允许用户侧向滚动并在向下滚动时滚过内容的末尾。
如何解决此问题,以便用户无法滚动浏览内容?
如果您需要任何其他详细信息或信息,请与我们联系。解释故事板细节有时可能有点棘手,所以我很乐意提供任何其他细节以使其更清晰。
答案 0 :(得分:1)
与您的其他问题的答案非常相似,关键是要了解Scroll View的 内容 确定可滚动区域。
假设您将“TopLabel”约束设置为Leading:0和Top:0。标签将位于内容的左上角,并将定义该项的左上角滚动视图的内容框架。
现在将“BottomLabel”放在右下方,并将约束设置为Trailing:0和Bottom:0。
此时,自动布局不知道将“BottomLabel”的顶部和左侧部分放在何处,因为可滚动区域未完全定义。
因此,如果向Leading:60和Top:400的“BottomLabel”添加约束,则“BottomLabel”的左上角将放置在60,400,可滚动区域(滚动视图的contentSize)将为{{ 1}} x 60 + width of BottomLabel
为避免滚动浏览您想要查看的最后一个视图/图像/标签,您需要确保 元素的约束正在控制滚动视图内容的宽度和高度。