UIScrollView ContentView动态高度约束

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了UIScrollView ContentView动态高度约束相关的知识,希望对你有一定的参考价值。

我面临着contentView高度限制的问题。所有标签都有动态高度,即没有固定高度。我已经读过某处设置高度等于scrollview高度。

ViewController的高度目前为870px,scrollview高度为757px。我不知道如何在AutoLayout中设置高度,因为我无法在某个点之后滚动。

Appearing in Simulation ViewController in main.Storyboard

我首先设置了UIScrollView,然后我添加了UIView作为UIScrollView的子项,然后我添加了2个UIImageView和几个UILabel,UILabel的大小取决于内容和内容不固定。由于UIView的高度是静态的,当UILabel的内容很大时,我无法在某个点之后滚动。

根据@Wonder Dog的回答,我做了一些改动,现在我得到Scroll View模糊高度问题enter image description here

答案

这样做:

  1. 将滚动视图添加到视图控制器,不要为其设置任何约束。
  2. 开始在滚动视图中添加子视图(图像,标签等)并设置所需的约束。对于标签,您无需设置高度,因为它们会根据内容自动调整高度。对于其他子视图,还设置稍后将确定高度(即宽高比)的高度或其他约束。如果滚动视图对于要添加的所有子视图都太小,请从其底部拖动以增加其高度。将所有子视图保留在滚动视图中并将它们链接到另一个是很重要的。
  3. 对于滚动视图中的最后一个标签,向滚动视图添加底部约束。
  4. 从滚动视图添加边距约束到主视图(顶部,前导,底部和尾部)。

由于所有子视图都链接并固定在滚动视图内的顶部和底部,并且滚动视图固定到故事板的视图,这将起作用。

不要设置滚动视图的高度。将其设置为757像素是错误的,因为它会在高度低于757像素的设备上呈现屏幕下方的滚动视图。

另一答案

如果你的意思是你希望滚动视图与容器视图的高度/宽度相同:

  1. 转到故事板并找到视图
  2. 按“ctrl”并从滚动视图拖动到父容器的一个边缘
  3. 对所有4条边(滚动视图的上边,左边,下边和右边)执行相同的步骤
  4. 您可能需要将约束设置为“0”(父项的边距像素数)

尝试按照此图片(确保所有行都是粗体(打开)并将文本框中的值设置为“0”:

enter image description here

以上是关于UIScrollView ContentView动态高度约束的主要内容,如果未能解决你的问题,请参考以下文章

UIScrollView 的 ContentView 中的 UIViewControllers?

让 2 个不同的 UIView 确定 UIScrollView 的 contentView 的高度

UIScrollView 和 Autolayout 防止 contentview 压缩

UIScrollView SetContentSize 与自动布局

UIScrollview 不适用于情节提要

在自动布局中动态更改 UIScrollView 的大小