我已经在ScrollViews上阅读了很多关于垂直滚动的手册/教程,但到目前为止还没有弄清楚如何解决我的问题。
您可以在此处查看我的ScrollView可视化计划:
最有用的答案就在这里,在StackOverflow上: https://stackoverflow.com/a/30282707/3718319
根据它,我做了以下事项:
我的ScrollView(我的屏幕截图上的红色)已经获得了0,0,0,0个约束,并且与ViewController的视图具有相同的宽度。在我的ScrollView中,我制作了一个ContentView(我的屏幕截图上的makred orange),其中包含(在我的屏幕截图上显示为绿色):
1)ImageView具有恒定高度并固定在ContentView的顶部/左/右。
2)以恒定高度查看并将顶部固定到ImageView,左/右固定到ContentView。
3)以恒定高度查看并固定在其上方的视图上,左/右到ContentView。
4)TextView固定在其上方的视图顶部,左/右连接到ContentView,固定底部固定到ContentView。
因此,所有垂直约束都已设置,我的可滚动内容高度应根据文本视图的高度而变化。这就是我的目标。
但我从故事板中得到错误,告诉: 需要约束:Y位置或身高。
你能帮我解决这个问题吗?
谢谢!
答案 0 :(得分:3)
故事板抛出这些警告的原因是因为它无法计算滚动视图的内容大小。使用内容视图中的第一组约束,它具有不明确的高度。
例如,假设您将每个高度约束设置为100,并且固定约束具有20个空格值,内容视图中每个子视图的框架将如下所示:由于textView具有顶部和底部约束,因此它的高度会有所不同,内容视图的高度也会因textView高度而异。
然而,textView也有滚动功能,这将使得在没有额外约束的情况下很难计算与内容视图相关的高度。
由于你在textView中禁用了它的滚动功能,故事板在计算每个子视图帧时不再有任何困难,这就是警告消失的原因。
可选地,您可以启用textView的滚动功能并为其提供高度约束,这将为故事板提供足够的信息来计算每个子视图帧。
答案 1 :(得分:2)
我刚想通了,我必须在我的文本字段中取消选中“启用滚动”。这是有道理的。
我之前已经尝试过,但在我从头开始制作这个故事板ViewController之前,它没有帮助我。