即使 UIView 框架增加,UIScrollview 也不会滚动超出 UIView 高度

UIScrollview is not scrolling beyond UIView height even though UIView frame is increased

我正在尝试在 iphone 3.5 英寸屏幕中创建一个需要滚动的屏幕。我附上了包含 uiviewcontroller 、 uiscrollview 、 uiview 的配置的图像。问题是尽管高度似乎增加了,当我 运行 iPhone 4s 时,滚动的某些部分隐藏在 UIView 之外(尽管当我在控制台中打印高度时 uiview 高度显示 700)。可能是什么问题?请帮帮我?

您的约束具有负值。在最后一个屏幕截图中,我假设是 scrollView 内部视图的约束,超级视图的底部偏移量是 -400。

我认为这就是您看不到整个视图的原因,因为底部偏移量为负值。尝试将此值设置为 0,这应该可以解决问题。

如果这不能解决您的问题,也许您可​​以指定图像的约束是针对哪个视图。

让我知道进展如何!祝你好运!

当您使用 UIScrollViewAutoLayout 时,它总是很棘手。

您必须将所有子视图添加到一个 UIView 并将该视图添加到 UIScrollView

您需要的自动布局约束:

对于 UIScrollView:

Left to Superview
Right to Superview
Top to Superview
Right to superview

对于 UIScrollView 的内部视图(即 ScrollView 内部的唯一视图):

Width & Heigh
Left, Right, Top and Bottom constraint to Superview (i.e. ScrollView)
Also add Horizontal Centre to Superview.

它会很有魅力(至少对我来说每次都有效:)

contentSize 必须大于滚动视图的框架才能滚动。 :)

在这种情况下,它们都是 (600, 1300),因此请将 scrollView 的高度更改为 (320,480)

这有点令人困惑,但正如 Yuvrajsinh 告诉您的那样,您需要将滚动视图的自动布局约束设置为它的超级视图的 4 个边。然后对scrollView的content做同样的事情,最重要的是:设置一个fixed/not与content的scrollview高度和宽度相关

感谢您提供的信息和建议。现在它工作正常。我所做的是

  1. 设置滚动视图顶部、左侧、右侧、底部与超级视图对齐

  2. 将滚动视图的内容视图设置为顶部、左侧、右侧、底部与滚动视图对齐

  3. 将滚动视图的内容视图设置为“等高”和“等宽”到顶部超级视图。

  4. 然后我将等高约束设置为低优先级 250

    现在我可以根据 phone 屏幕的大小随时滚动 :)