将子视图添加到视图控制器时,ScrollView 不滚动

Posted

技术标签:

【中文标题】将子视图添加到视图控制器时,ScrollView 不滚动【英文标题】:ScrollView doesn't scroll when added a subview to a view controller 【发布时间】:2014-01-03 15:09:16 【问题描述】:

我有一个ViewController1,其中有一个ScrollView。在那个Scrollview 中,我添加了另一个ViewController2。一切都按预期正常工作。我可以滚动视图。在这个ViewController2 中,我正在尝试添加子视图另一个视图,该视图具有来自ViewController2 的单独视图类初始化框架。当我添加它时,一切都可见并且工作正常,但视图不允许滚动视图滚动。

层次是这样的

UIViewController1(Root) --> UIScrollView

UIScrollView 的子视图 --> UIViewController2

UIViewController2 的子视图 --> UIView(从 UIViewController2 发送的单独的类框架)

请帮帮我。

【问题讨论】:

【参考方案1】:

您确定您正确设置了框架吗?确保没有任何东西与该滚动视图重叠,您还可以检查该 scrollViewcontentSize 是否需要滚动。这些是我将开始查看您的问题描述的内容。

重叠层可以在模拟器上检查(Debug 选项然后设置Color Blended Layers

【讨论】:

我添加的视图有帧 0,0,320,320。如果我触摸 320 以上,即低于该视图,我可以滚动。 我想到的另一件事 - 你确定你没有在滚动上添加任何东西(例如某些东西到根视图)? 不。 RootViewController 仅具有滚动视图,其中添加了带有两个按钮和标签的后半部分。前半部分是我在问题中提到的 viewcontroller2。 如果你能通过代码,那么找出问题所在会更容易 发现了问题。它是在滚动视图滚动上的平移手势识别器。我需要改变我的逻辑来替换手势识别器。感谢您的帮助。

以上是关于将子视图添加到视图控制器时,ScrollView 不滚动的主要内容,如果未能解决你的问题,请参考以下文章

iOS - 将子视图添加到子视图控制器视图

将子视图添加到视图控制器

何时将子视图从情节提要添加到超级视图?

必须使用延迟实例化的UI视图将子视图添加到视图控制器两次

如何将子视图添加到另一个视图控制器?

将子视图添加到 NSView 以获得类似国际象棋的网格