UIScrollView 和 StackView 不会滚动

Posted

技术标签:

【中文标题】UIScrollView 和 StackView 不会滚动【英文标题】:UIScrollView and StackView wont scroll 【发布时间】:2018-03-05 02:19:39 【问题描述】:

我向一个空的 ViewController 添加了一个 UIScrollView,并向它添加了一个垂直的 UIStackView。我将滚动视图的约束设置为 0 以填充屏幕。

我在 UIStackView 中添加了一堆按钮,但是当我运行代码时,我无法滚动滚动视图。它只是在尝试滚动时没有任何作用。

这是故事板部分:

这是它在模拟器中的样子:

我似乎无法弄清楚。我假设我必须在不向 UIStackView 添加具体高度的情况下执行此操作,因为那样会调整内容的大小......

我想要实现的就像 android 上的 ScrollView。

【问题讨论】:

您首先了解是什么让滚动视图可滚动吗?不使用自动布局时如何做到这一点有一条规则,而使用自动布局时如何做到这一点有另一条规则。您使用哪种方式,您是否了解如何使滚动视图以这种方式滚动? 不,我对 ios 很陌生。我是一名试图学习 IOS 的 Android 开发人员。我猜我有自动布局(这可能是默认设置) 【参考方案1】:

此滚动视图不会滚动,因为您没有为滚动视图添加足够的约束来计算内容视图的大小。请尝试为按钮添加自动布局。每一个。并正确固定滚动视图。 scollview 必须能够正确计算内容大小才能正常工作。

https://developer.apple.com/library/content/documentation/UserExperience/Conceptual/AutolayoutPG/WorkingwithScrollViews.html

由于您是 iOS 新手,我建议您看看 tableview,它似乎更适合您的用例。

【讨论】:

以上是关于UIScrollView 和 StackView 不会滚动的主要内容,如果未能解决你的问题,请参考以下文章

在 StackView 内动态添加 ViewControllers - UIScrollView 内的 UIStackView

如何以编程方式将自定义 UIView 添加到 UIScrollView 之上的 Stackview?

UIStackView 在 UIScrollView 位置

使用 ScrollView 时出现 Autolayout 和 StackView 的问题

带有 UIScrollview 的 UIStackView 中的多行标签

Swift - ScrollView 中的 StackView 不滚动