Scrollview in'以模态呈现'视图控制器无法正常工作

时间:2017-04-02 16:25:44

标签: ios xcode uiscrollview autolayout presentmodalviewcontroller

我有一个以模态方式呈现的视图控制器,在VC中我有一个scrollview。但是,当我的segue类型为“模态”时,添加滚动视图通常似乎不起作用。我在某处读到了我必须将我的scrollview放在另一个视图中才能工作。所以这是我的视图层次结构:

这些是我对视图A的约束:

ScrollView约束:

ViewB约束:

在ViewB中,我有另一个视图,我给出了一个顶部,左边和左边的视图。正确约束0到其超视图。我也在代码中设置了这个:

 override func viewDidLayoutSubviews()
{
    viewB.frame.size.height = 2000
    scrollView.contentSize = viewB.frame.size
}

但是,滚动视图仍然不会滚动。感谢任何可以提供帮助的人......已经坚持了一段时间。

1 个答案:

答案 0 :(得分:1)

问题是您已将ViewB约束赋予其包含的滚动视图。这很好,如果你要采取这种方法(我更喜欢);但这意味着滚动视图contentSize由ViewB的大小决定,而不是由contentSize属性决定。因此,您的viewDidLayoutSubviews代码是无用的,您的第一步应该是抛弃它。

现在, ViewB的大小?不幸的是,它与滚动视图的大小相同,因为您已经给出了ViewB宽度和高度约束,使其与滚动视图的大小相同。因此无需滚动。

解决方案是通过约束来完成你在代码中尝试做的事情,即给ViewB一个固定为2000的高度约束,而不是你给它的高度约束。