如何实现所有子视图的滚动

Posted

技术标签:

【中文标题】如何实现所有子视图的滚动【英文标题】:How to implement scrolling for all subviews 【发布时间】:2013-07-29 18:51:39 【问题描述】:

我有一个带有两个子视图的视图控制器:UITableView 和 UIWebView。两个子视图都具有动态大小。如何同时实现两个子视图的滚动,就像它们粘在一起一样?我试图将它们添加到 UIScrollView 但它们仍然单独滚动。

我还尝试将 UIWebView 添加到表格单元格中,但是我无法在表格单元格中实现 UIWebView 的缩放。

感谢您的帮助和建议!

【问题讨论】:

也许尝试将 UIWebView 放到 UITableView 页眉或页脚中,这取决于您是否希望 UIWebView 位于表格顶部或底部。 【参考方案1】:

我认为您正在寻找的是 UIScrollView。你需要做什么:

将两个视图(地图视图和表格视图)作为子视图添加到 UIScrollView 禁用这些子视图的滚动 设置 UIScrollView 的 contentSize 并将它们移动到您想要的位置。

这样子视图内不会滚动,而是会一起移动(粘在一起)。

【讨论】:

【参考方案2】:

充当两个滚动视图的代表并实现scrollViewDidScroll。对于您获得的每个更新,检查它是哪个滚动视图,并将另一个滚动视图的内容偏移量设置为向您传递更新的滚动视图的偏移量。

【讨论】:

【参考方案3】:

    将 UITableView 和 UIWebView 添加到 UIScrollView 将意味着它们可以一起滚动...但是什么有控制权?如果 UITableView 和 UIScrollView 有活动内容,那么 ios 将会对滚动的内容和方式感到困惑。

    将 UIWebView 添加到表格单元格中会缩放,如果您使用: [webView setScalesPageToFit:YES];

【讨论】:

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

如何与作为滚动视图子视图的水平滚动视图交互?

如何在 Android 的滚动视图中放大/更改子图像视图尺寸以使图像全尺寸

如何禁用滚动视图子视图的点击手势?

使用静态和滚动子视图实现视图

如何将 UITableviewcell 子视图添加为 uiscrollview

UIScrollView 如何将充当容器的子视图约束到所有其他视图?