【发布时间】:2020-12-05 22:58:01
【问题描述】:
在过去的 2 天里,我一直很难解决这个问题。我要找的结构如下:
- 我想让滚动视图占据整个屏幕,以便垂直滚动。
- 我希望将图像视图添加到滚动视图的顶部,并将垂直堆栈视图添加到下方。
关键是垂直堆栈视图根据内容动态增加其高度。
首先,我只是尝试添加没有图像视图的堆栈视图,只是为了测试动态可滚动高度。按照here的SO回答:
- 添加了带有 0、0、0、0 约束的滚动视图。
- 将堆栈视图添加到滚动视图。将约束设置为
Content Layout Guide, 0, 0, 0, 0 约束。 - 将堆栈视图的宽度设置为等于滚动视图。
这给了我一个约束错误,说我需要为滚动视图设置一个固定的高度。添加约束不允许我滚动。我尝试将堆栈视图直接固定到滚动视图,而不是Content Layout Guide,但仍然不起作用。
我在滚动视图上遵循 Apple 的 documentation 并在滚动视图中添加了一个内容视图,然后将堆栈视图固定到内容视图:
这也不滚动。
堆栈视图的分布设置为等间距或填充。
请帮忙。
【问题讨论】:
-
您是否尝试过为stackview 中的所有视图设置固定高度约束?例如,将所有视图的高度设置为 300,并检查滚动视图是否使用该设置滚动。
-
我试过了
-
您的 contentView 尾随约束应该等于内容布局指南尾随 0 常量。为什么要加一个常数 414?
-
那是自动添加的。但这只是与宽度有关,不会影响垂直滚动,对吧?
-
其实……你需要去掉 contentView.bottom = frame layout guide.bottom。这很可能是这里的问题。
标签: ios swift uiscrollview uistackview