具有共享滚动手势

时间:2017-08-23 18:46:44

标签: ios objective-c uitableview uiscrollview

我正在尝试在另一个UITableView的页脚中嵌入UITableView。结果意味着是一个表视图,其中一个部分(或特定的页脚)包含两个用户可以在其间水平滚动的表视图。表视图的垂直滚动不应该嵌套,这意味着如果不滚动外部表视图,您将永远无法滚动嵌套表视图。这是困难的地方,因为嵌套表视图的大小需要允许外部滚动仍然是活动的,同时还允许单元重用。

建议1

将两个嵌套表格视图嵌入页脚内部的UIPageViewControllerUIScrollView内。我可以使用此方法轻松创建我想要的UI,问题归结为滚动和性能。首先,嵌套视图控制器的内容大小是多少?如果将其设置为与超级视图相同,则仅在嵌套表视图内部处理滚动,并且外部表视图不会滚动。如果我改为将内容大小设置为足以包含每个单元格,则滚动按预期工作,但重用单元格不再可用,因为所有单元格将同时出列。不好。

对此可能的解决方案是将嵌套的tableview的大小设置为超级视图的大小,并且只有在它覆盖整个屏幕时才启用它。这将允许用户正常滚动外部滚动视图,并且一旦完全呈现嵌套表视图,我们就切换到滚动该视图。

建议2

坚持使用单个表视图,并找到一种允许某个部分水平滚动的方法。我还不知道这是否可能。

2 个答案:

答案 0 :(得分:0)

编辑1:为了澄清,您正在尝试的内容不需要将表视图的页脚作为另一个表视图。相反,我们可以创建一个带有子类UITableViewCell的表视图,并通过在内部表视图上设置属性来填充cellForRowAtIndexPath中的表视图。这使您可以根据需要灵活地控制添加/删除更多表视图。确保将内部表视图的dataSource设置为除外部之外的其他内容,否则可能会导致问题。

如果我理解你的目标是正确的,那么你可以做的一种方法是创建2个表视图,并通过继承UITableViewCell并在其中放置表视图来创建一个新的动态表视图单元。您必须调整高度,以便每个表视图适合它们各自的单元格。

从那里,您只需要在您创建的属性上设置horizo​​ntalScrollingEnabled,将 innerTableView 设置为 true 。希望这有帮助!谢谢! :)

答案 1 :(得分:0)

您可以尝试在tableView的每个单元格中使用集合视图