我正在使用Xcode 6.4,我正在努力处理一个包含各种标签和文本字段等的大页面,这些页面必须是可滚动的。我查看了各种教程,其中一些显然已经过时了,我首先在滚动视图内部的视图中包含了所有元素。但是,使用自动布局使所有元素正确对齐,除了不使其滚动之外,这是一个巨大的痛苦。
现在我看到一个人建议直接在元素上使用以下内容,而根本没有内容视图只是滚动视图:
编辑 - >嵌入 - >滚动视图
我喜欢它,因为没有任何东西看起来不成比例,所有元素都在iPhone上显示,就像我在故事板上一样,而不必设置任何约束,但是我无法得到它滚动。
这是我的班级
class ResNotFoundViewController: UIViewController, UIScrollViewDelegate
我也尝试在代码中设置scrollview的高度:
@IBOutlet weak var scrollviewoutlet: UIScrollView!
然后在viewDidLoad中这样:
scrollviewoutlet.contentSize = CGSizeMake(375, 840)
但是我根本无法滚动它,它将完全像它打开时使用From:Label是最后一个可见元素。
我做错了什么?
答案 0 :(得分:2)
由于您的日志记录,您已找到问题所在。 (不要担心双重调用 - 多少次以及viewDidLayoutSubviews
被调用的时间是无趣的。)
问题是您已将滚动视图本身设置为高于窗口。特别是它是375x809。但它的contentSize
也是如此。因此没有什么可滚动的。滚动视图只能在其contentSize
更大(一维或二维)而不是滚动视图时滚动。 (此外,大于屏幕的滚动视图通常有点无意义,因为用户将永远不会看到其部分内容 - 甚至一直滚动,内容将在屏幕外。)
所以,修改滚动视图本身的大小,你就可以了。最好的方法是将其边界分配给超级视图,因为超级视图在不同的设备上具有不同的大小。