UIScrollView 将内容推离页面
Posted
技术标签:
【中文标题】UIScrollView 将内容推离页面【英文标题】:UIScrollView pushes content off the page 【发布时间】:2016-07-26 16:33:19 【问题描述】:我正在使用 Xcode 7 和 Swift 2。
我的应用场景目前具有以下结构: 场景 -> 视图 -> 堆栈视图
问题是我的垂直空间已经用完了,所以我想把 Stack View 扔到一个 Scroll View 中。但是,当我这样做时,内容会被水平推离页面。我不知道为什么在没有滚动视图的情况下,所有内容都与屏幕齐平。我没有添加任何额外的约束。
有什么想法吗?
【问题讨论】:
你在滚动视图中添加了布局约束吗? 嗨,丹!我对所有四个角都做了“0”,并且未选中“限制到边距”,因为它在垂直方向上很长 我想这是你想看的。 ***.com/a/27227174/6535878 【参考方案1】:滚动视图的全部意义在于它适合其内容并允许您滚动到它。因此,如果您不限制内容,它将采用自然想要的任何大小。
因此,基本上,您需要将内容的宽度限制为与滚动视图的宽度相同,以便它可以根据其内在要求垂直增长。即将滚动视图和堆栈视图的宽度设置为相等。
【讨论】:
我添加了一个约束,使 Stack View.width = width,看起来一样。我还将内容拥抱优先级设置为水平 1000,但它仍然被推离页面。我知道我可能应该提供更多信息,但我不确定有什么帮助【参考方案2】:原来你首先需要一个内容视图(也就是普通的uiview),所以最终的结构是
视图 -> 滚动视图 -> 内容视图 -> 堆栈视图
现在是关键部分:您需要为 View 的 Content View 设置等宽约束,而不是 Scroll View。滚动视图并不关心您在 Xcode 中看到的布局的大小,因此您需要将滚动视图内部的所有内容都限制在滚动视图之外。堆栈视图的约束是内容视图的四个 0(我可能只是让堆栈视图完成内容视图的工作,但它可以工作,所以我现在不会弄乱它)
上面 Nick 提供的this link 的第 5 步给了我这个想法
【讨论】:
以上是关于UIScrollView 将内容推离页面的主要内容,如果未能解决你的问题,请参考以下文章