在父视图中添加 ImageView 后 UIScrollView 停止滚动?
Posted
技术标签:
【中文标题】在父视图中添加 ImageView 后 UIScrollView 停止滚动?【英文标题】:UIScrollView stopped scrolling after adding an ImageView in parent view? 【发布时间】:2015-10-09 07:54:35 【问题描述】:我的主视图中有一个UIScrollView
。它工作正常。当我在该滚动视图顶部添加UIImageView
时,UIScrollView
停止滚动。但如果我删除UIImageView
,它工作正常。 UIImageView
的目的是为主视图提供背景图片。
视图层次结构是
父视图 后台UIImageView
UIScrollView
我在 viewDidLoad 函数中添加了以下代码:
_scrollView.contentSize = self.view.frame.size;
_scrollView.frame = self.view.frame;
[self.view addSubview:_scrollView];
[self.view bringSubviewToFront:_scrollView];
【问题讨论】:
向我们展示应用程序和情节提要的屏幕截图,它将帮助我们为您提供帮助 您是否以编程方式添加图像视图?如果是,很可能您的 Imageview 被添加到滚动视图上方,并且滚动视图没有接收任何输入,因此它没有滚动。提供您如何添加它的代码,否则将很难得出结论。 嗨,我已经添加了屏幕截图和代码sn-p 嗨,我已经添加了屏幕截图和代码sn-p @kunjus 我已经发布了答案。我希望这能解决您的问题 【参考方案1】:添加图像视图后添加这一行。我假设您在主视图中添加了滚动视图和图像。
[self.view bringSubviewToFront:yourscrollview]
并将滚动视图背景颜色设置为 clearcolor,以便图像背景可见。
【讨论】:
这也是我的猜测。他说他在滚动视图之上添加了图像视图,但没有提到他是如何做到的。然后在层次结构中,他说 imageview 低于滚动视图。没有先看代码就发布答案有点太仓促了,你不觉得吗? 他提到了MainView -BackgroundImage View -ScrollView @Imran,阅读问题。他说他正在滚动视图上添加 Imageview 是的,但他也提到了视图结构,这就是我在回答中写的原因*我假设您在主视图中添加了滚动视图和图像* @Imran 更有理由耐心等待,直到您不必做出假设。当他澄清时。但无论如何。随心所欲。【参考方案2】:您在以下几行中设置了 UIScrollView
中的 ContentSize
错误:
_scrollView.contentSize = self.view.frame.size;
_scrollView.frame = self.view.frame;
如果它等于它自己的大小,它就不会滚动。给它一个大于那个的内容大小。 做这样的事情来测试:
_scrollView.contentSize = CGSizeMake(self.view.frame.size.width, 1000);
另外,您为什么要再次将 _scrollView 添加为子视图?它已经通过 xib 文件添加到视图中。您是否也在代码中重新添加了背景UIImageView
?如果是,那会给您带来更多问题。摆脱多余的手动添加子视图。
【讨论】:
对于那些发布不相关和错误答案的人,他们因此而被否决,我只想说报复性的投反对票真的很可悲。如果这让您感觉好些,那不是我否决了您的回答。您只是为了报复某人而对正确答案投反对票,这几乎很有趣【参考方案3】:你的scrollView的contentSize应该有一个比你的scrollview的基本框架更大的框架,否则它不会滚动,这意味着你没有留下足够的空间让scrollView滚动显示。
【讨论】:
【参考方案4】:在 xib 中,您需要告诉 xib 您的 ScrollView 的 ContentSize。如果你给了它前导空间、尾随空间、顶部空间和底部空间,你只是告诉了超级视图你的 ContentSize,所以你还需要给他宽度约束和高度约束,然后超级视图会知道你的实际框架;如果高度或宽度大于 ContentSize,它将滚动。
【讨论】:
以上是关于在父视图中添加 ImageView 后 UIScrollView 停止滚动?的主要内容,如果未能解决你的问题,请参考以下文章