ScrollView 有子视图时不滚动

Posted

技术标签:

【中文标题】ScrollView 有子视图时不滚动【英文标题】:ScrollView doesn't scroll when it has a subview 【发布时间】:2014-02-28 15:33:27 【问题描述】:

我有一个滚动视图,我在界面构建器中添加到我的视图控制器中,我设法让它工作,所以它滚动。但是每当我在滚动视图中放置一个按钮或另一个视图时,它都不想滚动。

我在 ios 模拟器中使用了颜色混合图层选项,并且在我尝试滚动的区域中没有任何内容与滚动视图重叠。

即使我有子视图,如何让它滚动?

【问题讨论】:

如何添加子视图?你是如何设置内容大小的? @Wain 我刚刚使用界面生成器添加了子视图。内容大小使用[scrollView setContentSize:CGSizeMake(320,1800)]; 设置 尝试在viewWillAppear:中设置内容大小 @Wain 它仍然无法正常工作。可能有一些非常简单的原因导致我只是忽略了这一点。如果您有更多想法有什么问题,请发布它们。我对编程很陌生,所以它可能非常简单。 记录viewDidAppear:中的内容大小 【参考方案1】:

如果我在 IB 中启用了 AutoLayout,我的 scrollViews 无法滚动,因此您可能需要对此进行调查。可能有一种方法可以通过使用适当的约束来解决这个问题。

【讨论】:

谢谢!自动布局是我在post.-(void)viewDidLayoutSubviews [scrollView setContentSize:CGSizeMake(320, 1800)]; 中找到解决方法的问题【参考方案2】:

记得设置你的scrollview的contentSize,如果contentSize匹配屏幕的大小,scrollView不会滚动,因为它不需要。

self.scrollView.setContentSize = mySubView.frame.size;

【讨论】:

我确实使用 [scrollView setContentSize:CGSizeMake(320,1800)]; 将内容大小设置为 1800,并且当滚动视图为空时它可以工作,但当我在其中放一些东西时它就不行了。 你在里面放什么样的观点?如果您嵌入具有UIScrollview(如UITableViewUIWebView)的UIView,您可能会遇到问题 我试过 UIButton 和 UIView,它们都不起作用。【参考方案3】:

你需要设置scrollViews contentSize. Normally,the contentSize is the sum of all subviewss的高度。 请阅读 UIScollView 参考。

    self.scrollView.contentSize = mySubView.bounds.size;

【讨论】:

我确实使用 [scrollView setContentSize:CGSizeMake(320,1800)]; 将内容大小设置为 1800,并且当滚动视图为空时它可以工作,但当我在其中放一些东西时它就不行了。 我使用了下面的代码,其余的是界面构建器的东西。 -(void) viewDidLoad [super viewDidLoad]; [scrollView setScrollEnabled:YES]; [scrollView setContentSize:CGSizeMake(320,1800)]; 我还在 ViewController.h 中链接了我的滚动视图。 是您的按钮size bigger then scrollviews 大小,而不是内容大小。 尝试在scrollView中添加一个UIView。

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

Fragment中的ScrollView在软键盘出现时不滚动

微信小程序scroll-view 能自动滚动吗

小程序scroll-view垂直滚动下设置高度问题

ScrollView 内的 Android WebView 仅滚动滚动视图

Storyboard Scrollview with StackView inside not scrolling

Scroll view 备忘