问题描述
过去2天来,我一直很难解决这个问题。我要寻找的结构如下:
- 我想让滚动视图占据整个屏幕,以便垂直滚动。
- 我希望将图像视图添加到滚动视图的顶部,并将垂直堆栈视图添加到下方的视图。
关键是垂直堆栈视图的高度会根据内容动态增加。
首先,我只是尝试添加没有图像视图的堆栈视图,只是为了测试动态可滚动高度。遵循了here的答案:
- 添加了具有0、0、0、0约束的滚动视图。
- 将堆栈视图添加到滚动视图。将约束设置为
Content Layout Guide
,0、0、0、0约束。 - 将堆栈视图的宽度设置为与滚动视图相等。
这给了我一个约束错误,说我需要为滚动视图设置一个固定的高度。添加约束不会让我滚动。我尝试将堆栈视图直接固定到滚动视图,而不是固定到Content Layout Guide
上,但是仍然不起作用。
我在滚动视图上遵循Apple的documentation,并在将堆栈视图固定到内容视图之前在滚动视图中添加了内容视图:
这也不滚动。
堆栈视图的分布设置为相等的间距或填充。
请帮助。
解决方法
This的答案确实对我有用。
添加scroll view
并将四个边固定到safe area
。确保约束值为0。
在stackview
内添加scrollview
,并将四个边的约束值固定为scrollview
。
将stack view's
的宽度设置为等于scroll view's
的宽度。
在stackview
内添加尽可能多的视图。
要测试滚动是否可行,请为stackview
内的视图设置固定高度,以确保scrollview
具有可滚动的高度。然后在选择stackview
的情况下,用两根手指在viewcontroller
内拖动。 stackview
应该在scrollview
内滚动。
这是设置约束的方式: