【问题标题】:UIScrollView pushes content off the pageUIScrollView 将内容推离页面
【发布时间】:2016-07-26 16:33:19
【问题描述】:

我正在使用 Xcode 7 和 Swift 2。

我的应用场景目前具有以下结构:
场景 -> 视图 -> 堆栈视图

问题是我的垂直空间已经用完了,所以我想把 Stack View 扔到一个 Scroll View 中。但是,当我这样做时,内容会被水平推离页面。我不知道为什么在没有滚动视图的情况下,所有内容都与屏幕齐平。我没有添加任何额外的约束。

有什么想法吗?

【问题讨论】:

  • 你在滚动视图中添加了布局约束吗?
  • 嗨,丹!我对所有四个角都做了“0”,并且未选中“限制到边距”,因为它在垂直方向上很长
  • 我想这是你想看的。 stackoverflow.com/a/27227174/6535878

标签: ios swift uistoryboard


【解决方案1】:

滚动视图的全部意义在于它适合其内容并允许您滚动到它。因此,如果您不限制内容,它将采用自然想要的任何大小。

因此,基本上,您需要将内容的宽度限制为与滚动视图的宽度相同,以便它可以根据其内在要求垂直增长。即将滚动视图和堆栈视图的宽度设置为相等。

【讨论】:

  • 我添加了一个约束,使 Stack View.width = width,看起来一样。我还将内容拥抱优先级设置为水平 1000,但它仍然被推离页面。我知道我可能应该提供更多信息,但我不确定有什么帮助
【解决方案2】:

原来你首先需要一个内容视图(也就是普通的uiview),所以最终的结构是

视图 -> 滚动视图 -> 内容视图 -> 堆栈视图

现在是关键部分:您需要为 View 的 Content View 设置等宽约束,而不是 Scroll View。滚动视图并不关心您在 Xcode 中看到的布局的大小,因此您需要将滚动视图内部的所有内容都限制在滚动视图之外。堆栈视图的约束是内容视图的四个 0(我可能只是让堆栈视图完成内容视图的工作,但它可以工作,所以我现在不会弄乱它)

上面 Nick 提供的this link 的第 5 步给了我这个想法

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-08-02
    • 1970-01-01
    • 2012-08-19
    • 1970-01-01
    • 2018-04-08
    相关资源
    最近更新 更多