22

所以我正在尝试创建一个UIScrollView仅在情节提要中允许我添加超过 VC 高度的滚动标签。这是我所做的:

  1. 创建UIScrollView占用任意宽度任意高度 VC 的大小

  2. 在顶部、底部、左侧和右侧将约束设置为 0,以便与最近邻居的间距

  3. 创建了一个视图,它的subView宽度UIScrollView与任意宽度任意高度 VC 相同,但高度为 1500(因为我只希望它垂直滚动)。

  4. 仅将左侧、顶部和右侧的最近邻约束设置为 0,并将高度约束设置为 1500。

  5. 我在顶部subView和底部放了一个标签

当我在 iPhone 6 上运行应用程序时,不会像我想要的那样垂直滚动。任何想法为什么这不起作用?提前致谢。

4

4 回答 4

45

要获得滚动,您必须将子视图(“内容视图”)固定到滚动视图的顶部、左侧、底部和右侧。此外,您必须给它(给“内容视图”)一个明确的(=与滚动视图无关)高度和宽度,因为滚动视图使用这些来计算其内容大小。在您的情况下,将宽度设置为 VC 主视图宽度,将高度设置为 1500。当宽度或高度大于滚动视图大小时,它将滚动。

滚动视图约束(固定到主视图)

滚动视图约束

内容视图(固定到滚动视图 + 高度 1500,宽度=主视图宽度)+ 标签约束(例如:内容视图左上角的 20 20)

内容视图 + 标签约束

于 2014-11-04T18:50:53.240 回答
8

为了更容易的可视化,我制作了一个关于如何做到这一点的视频。

有关如何在 iOS 中创建仅垂直滚动视图的视频

于 2015-10-28T23:07:53.833 回答
1

您是否将 contentsize 设置为大于屏幕本身?在你的情况下,只是高度更大。

正如 Apple 文档所说:“您必须将 contentSize 属性设置为可滚动内容的大小。这指定了可滚动区域的大小。”

于 2014-11-04T18:48:55.940 回答
0

唯一的解决方案是在滚动视图的子视图底部子视图的右侧和底部添加约束。还要检查从上到下的所有视图是否都有适当的约束以及高度。对于滚动视图的包装视图,为其父视图添加等宽和等高约束。

于 2017-11-02T12:45:57.193 回答