【问题标题】:Swift - Why ScrollView not full screen?Swift - 为什么 ScrollView 不是全屏?
【发布时间】:2016-10-05 15:53:35
【问题描述】:

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

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

请帮帮我!非常感谢。

P/S:对不起,我的英语不好。

【问题讨论】:

  • 拖动ScrollView全屏是什么意思?在您的第一个图像滚动视图中,申请屏幕的某些区域没有全屏。
  • 您需要为您的滚动视图和所有子视图设置自动布局约束。请看documentation
  • 我认为你在故事板中设置了透明,检查故事板

标签: ios uiviewcontroller uiscrollview autolayout


【解决方案1】:

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

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

约束是告诉视图何时调整大小、调整大小以及定位位置的东西。

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

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

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

  • 最右边的按钮用于让 Xcode 决定您应该添加哪些约束。而且我认为大多数时候它的选择是可以的。但有时,您仍需要进行一些调整才能使其正常工作。

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

好吧,我想我应该教你在想添加约束时如何思考。这样,您以后可以自己解决。

你应该首先让 Xcode 猜测你想要什么约束。只需单击最右侧的按钮,然后单击“重置为建议的约束”。如果 Xcode 能够做到这一点,这可以节省很多工作。所以请记住始终先执行此操作。

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

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

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

只需选择约束并按删除。

【讨论】:

  • 我认为 OP 正在使用约束,并且在顶部约束中有错误(translucent 设置为错误的值,约束到 view 的顶部,其值与 a 的高度相同导航栏),否则视图将无法正确居中,并且多余的空间将出现在右侧和底部。
【解决方案2】:

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

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

【讨论】:

    【解决方案3】:

    您需要为您的滚动视图添加约束。将前导和尾随约束设置为 0。固定滚动视图的高度,并且不要忘记设置顶部布局约束。您可以固定高度或将底部布局约束添加到页面控件。

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

    【讨论】:

      【解决方案4】:

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

      【讨论】:

        【解决方案5】:

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

        【讨论】:

          【解决方案6】:

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

          The checkbox to uncheck

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 2017-06-01
            • 2021-08-03
            • 1970-01-01
            • 1970-01-01
            • 2018-09-09
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多