我有一个以模态方式呈现的视图控制器,在VC中我有一个scrollview。但是,当我的segue类型为“模态”时,添加滚动视图通常似乎不起作用。我在某处读到了我必须将我的scrollview放在另一个视图中才能工作。所以这是我的视图层次结构:
这些是我对视图A的约束:
ScrollView约束:
ViewB约束:
在ViewB中,我有另一个视图,我给出了一个顶部,左边和左边的视图。正确约束0到其超视图。我也在代码中设置了这个:
override func viewDidLayoutSubviews()
{
viewB.frame.size.height = 2000
scrollView.contentSize = viewB.frame.size
}
但是,滚动视图仍然不会滚动。感谢任何可以提供帮助的人......已经坚持了一段时间。
答案 0 :(得分:1)
问题是您已将ViewB约束赋予其包含的滚动视图。这很好,如果你要采取这种方法(我更喜欢);但这意味着滚动视图contentSize
由ViewB的大小决定,而不是由contentSize
属性决定。因此,您的viewDidLayoutSubviews
代码是无用的,您的第一步应该是抛弃它。
现在,是 ViewB的大小?不幸的是,它与滚动视图的大小相同,因为您已经给出了ViewB宽度和高度约束,使其与滚动视图的大小相同。因此无需滚动。
解决方案是通过约束来完成你在代码中尝试做的事情,即给ViewB一个固定为2000的高度约束,而不是你给它的高度约束。