Xcode直接在滚动视图中嵌入所有内容视图

时间:2015-11-11 22:00:32

标签: ios scrollview

我正在使用Xcode 6.4,我正在努力处理一个包含各种标签和文本字段等的大页面,这些页面必须是可滚动的。我查看了各种教程,其中一些显然已经过时了,我首先在滚动视图内部的视图中包含了所有元素。但是,使用自动布局使所有元素正确对齐,除了不使其滚动之外,这是一个巨大的痛苦。

现在我看到一个人建议直接在元素上使用以下内容,而根本没有内容视图只是滚动视图:

  

编辑 - >嵌入 - >滚动视图

我喜欢它,因为没有任何东西看起来不成比例,所有元素都在iPhone上显示,就像我在故事板上一样,而不必设置任何约束,但是我无法得到它滚动。

这是我的班级

class ResNotFoundViewController: UIViewController, UIScrollViewDelegate

我也尝试在代码中设置scrollview的高度:

@IBOutlet weak var scrollviewoutlet: UIScrollView!

然后在viewDidLoad中这样:

scrollviewoutlet.contentSize = CGSizeMake(375, 840)

enter image description here

但是我根本无法滚动它,它将完全像它打开时使用From:Label是最后一个可见元素。

我做错了什么?

1 个答案:

答案 0 :(得分:2)

由于您的日志记录,您已找到问题所在。 (不要担心双重调用 - 多少次以及viewDidLayoutSubviews被调用的时间是无趣的。)

问题是您已将滚动视图本身设置为高于窗口。特别是它是375x809。但它的contentSize也是如此。因此没有什么可滚动的。滚动视图只能在其contentSize 更大(一维或二维)而不是滚动视图时滚动。 (此外,大于屏幕的滚动视图通常有点无意义,因为用户将永远不会看到其部分内容 - 甚至一直滚动,内容将在屏幕外。)

所以,修改滚动视图本身的大小,你就可以了。最好的方法是将其边界分配给超级视图,因为超级视图在不同的设备上具有不同的大小。