UIScrollView ContentView动态高度约束

时间:2017-12-24 14:00:08

标签: uiscrollview autolayout

我面临着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的回答,我做了一些改动,现在我得到滚动视图模糊高度问题enter image description here

2 个答案:

答案 0 :(得分:3)

这样做:

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

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

答案 1 :(得分:0)

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

  1. 转到故事板并找到视图
  2. 按“ctrl”并从滚动视图拖动到父容器的其中一个边缘
  3. 对所有4条边(滚动视图的上边,左边,下边和右边)执行相同的步骤
  4. 您可能需要将约束设置为“0”(来自父级的边距像素数)
  5. 尝试按照此图片(确保所有行都是粗体(打开)并将文本框中的值设置为“0”:

    enter image description here