故事板中的UIScrollView无法使用iOS 8大小类和Autolayout

时间:2014-11-04 18:21:26

标签: ios uiscrollview ios8 autolayout size-classes

所以我试图仅在故事板中创建一个UIScrollView,允许我添加滚动标签超过VC的高度。这是我做的:

  1. 创建UIScrollView占用任意宽度任意高度的大小VC

  2. 在顶部,底部,左侧和右侧与最近邻居建立约束0

  3. 创建一个subView的{​​{1}}视图,其宽度与任何高度VC相同,但高度为1500(因为我只希望它垂直滚动)。

  4. 仅将左边,上边和右边的约束设置为0,并将高度约束设置为1500.

  5. 我在UIScrollView的顶部和底部放置了一个标签

  6. 当我在iPhone 6上运行应用程序时,不会按我希望的方式垂直滚动。任何想法为什么这不起作用?提前谢谢。

4 个答案:

答案 0 :(得分:45)

要获得滚动,您必须将子视图(“内容视图”)固定到滚动视图的顶部,左侧,底部和右侧。 此外,您必须给它(“内容视图”)一个显式(=与滚动视图无关)的高度和宽度,因为scrollview使用这些来计算其内容大小。 在您的情况下,将宽度设置为VC主视图宽度,将高度设置为1500。 当宽度或高度大于滚动视图大小时,它将滚动。

滚动视图约束(固定到主视图)

scroll view constraints

内容视图(固定为scrollview + height 1500,width = mainview width)+标签约束(例如:内容视图左上角20 20)

content view + label constraints

答案 1 :(得分:8)

为了便于观看,我制作了一个关于如何做到这一点的视频。

Video on how to create a vertical-only scrollview in iOS

答案 2 :(得分:1)

您是否将内容大小设置为大于屏幕本身?在你的情况下,只是更大的高度。

Apple文档说: “您必须将contentSize属性设置为可滚动内容的大小。这指定了可滚动区域的大小。”

答案 3 :(得分:0)

唯一的解决方案是在滚动视图子视图的底部子视图的右下角添加约束。 同时检查从上到下的所有视图是否都有适当的约束和高度。 对于滚动视图的包装器视图,在其超级视图中添加相等宽度和相等高度约束。