如何将滚动视图嵌入到表格视图中

Posted

技术标签:

【中文标题】如何将滚动视图嵌入到表格视图中【英文标题】:How to embed scrollview into tableview 【发布时间】:2018-07-13 07:23:09 【问题描述】:

使用UIScrollView 仅用于水平滚动。内容高度和滚动视图高度相等。垂直滚动需要传递到父视图,传递到UITableView。怎么样?

不幸的是我不能覆盖,或者向滚动视图添加扩展方法,所以我不能实现这个方法:shouldRecognizeSimultaneouslyWith

【问题讨论】:

我想你是在尝试平行滚动 您建议使用 parallex 以编程方式进行操作?创建滚动轨道垂直滚动的委托,并更改偏移嵌套tableview?没有更简单的解决方案? 我确实使用过这样的UI,我的做法是在tableview单元类中添加UIScrollView,并在单元类本身中处理所有滚动视图委托方法。我认为你不需要做任何事情来让垂直滚动传递到父视图,只要你正确设置内容高度并禁用反弹,ios就会自动完成。 【参考方案1】:

UIScrollView 支持嵌套滚动视图是标准行为,因此您无需执行任何操作,因为 UITableView 是 UIScrollView 的后代。

Apple docs, see section Cross-directional scrolling

您的应用程序不需要做任何事情来支持嵌套滚动。默认支持并提供。

更新:

我按如下方式进行了尝试,并且在两个方向上滚动都可以正常工作。您可以在左侧看到视图层次结构。我的测试代码如下,然后是我滚动每个视图后的输出屏幕。

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section 
    return 5;


- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath 
    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"cell" forIndexPath:indexPath];
    return cell;

【讨论】:

可能支持横向滚动,但您还没有回答如何。当滚动视图嵌套到表格视图中时,你能举一个例子吗?

以上是关于如何将滚动视图嵌入到表格视图中的主要内容,如果未能解决你的问题,请参考以下文章

如何让表格视图滚动到图像视图上方?

如何在滚动视图中进行多个表格视图

将图像和滚动图标添加到表格视图的逻辑

在 XCode 中平滑滚动视图和表格视图之间的滚动过渡

如何防止表格视图滚动到视图后面?

将表格视图添加到滚动视图并让滚动视图随着单元格添加到表格视图而不断增长