有没有办法实现两个tableview的并行滚动?
Posted
技术标签:
【中文标题】有没有办法实现两个tableview的并行滚动?【英文标题】:Is there a way to achieve parallel scrolling of two tableview? 【发布时间】:2009-06-19 02:45:08 【问题描述】:比方说,我在一个滚动视图中有两个表格视图。在我向上和向下滚动 tableview1,然后触摸并滑动以将滚动视图水平滚动到 tableview2 后,我希望 tableview2 具有与 tableview1 相同的垂直(向上和向下)位置。有没有办法做到这一点? 谢谢
【问题讨论】:
我想不出为什么要在 scrollViews 中包含 tableViews 的原因。表格视图是一种滚动视图。这似乎没有多大意义。 正如 zPesk 所说,在滚动视图中放置滚动视图是没有意义的。此外,由于滚动视图的工作方式,子视图通常不能正常工作。外部视图滚动得很好,但内部视图的滚动是零星的。 理论上你可以将 UITableView 的 UIScrollView 属性设置为只允许垂直滚动(我相信这是默认设置),然后让父 UIScrollView 只允许水平滚动,并在父滚动视图中有一些代码确保您始终查看一个或另一个表视图的所有内容,而不是介于两者之间。但是 zPesk 和 Ed 是对的——嵌套滚动视图通常是一个危险的提议。考虑改用 UIPageControl。 【参考方案1】:您可以将代码放入 UITableViews 的 viewWillDisplay:
方法中,该方法会获取另一个表视图的滚动位置(在滚动视图中称为“内容偏移”)并调用 setContentOffset:animated:
。这样,每当任一滚动视图出现在屏幕上时,它都会自动滚动到另一个视图的位置。
【讨论】:
以上是关于有没有办法实现两个tableview的并行滚动?的主要内容,如果未能解决你的问题,请参考以下文章
TableView 在 Swift 中使用重复的单元格项目继续向下滚动
是否可以使 tableview 部分标题与普通 tableview 中的单元格一起滚动?