表视图行中集合视图的同步水平滚动
Posted
技术标签:
【中文标题】表视图行中集合视图的同步水平滚动【英文标题】:Synchronized horizontal scrolling of collection views in tableview rows 【发布时间】:2014-09-22 21:27:25 【问题描述】:我正在尝试在表格视图中同步所有集合视图中的滚动(请参见下面的图片链接):
示例图片: http://postimg.org/image/dduhr89e5/
我找到的示例说明了如何通过识别两个单独的滚动视图来同步它们。但是,我不确定如何在表格视图中识别每个集合视图。可能有 1 个或数百个都需要同步。
- (void)scrollViewDidScroll:(UIScrollView *)scrollView
if ([scrollView isEqual: theFirstScrollView])
theSecondScrollView.contentOffset =
CGPointMake(theFirstScrollView.contentOffset.x, 0);
else
theFirstScrollView.contentOffset =
CGPointMake(theSecondScrollView.contentOffset.x, 0);
【问题讨论】:
所有收藏视图的宽度是否相同? 【参考方案1】:假设每个集合视图都有自己的单元格,并且集合视图的宽度相似(或者至少你已经弄清楚了那部分),这是我将使用的方法:
1) 让您的 VC 成为所有集合视图的委托。
2) 当它们中的任何一个滚动时,通过 TableViews visibleCells 并设置单元格 collectionView 的内容偏移量。另外,将内容偏移量存储在 viewController 中。
3) 每当一个新单元出列时,将内容偏移设置为 VC 中最后存储的值。
【讨论】:
谢谢@Acey,我现在要试试这个。我假设我通过 TableView 的 visibleCells 运行快速枚举来设置每个人的 contentOffset,这是正确的吗? 是的。假设您使用的是自定义子类,您可能需要从每个单元格中公开 collectionView。 你是男人中的神阿西。我预计该功能需要很长时间才能添加。非常感谢!以上是关于表视图行中集合视图的同步水平滚动的主要内容,如果未能解决你的问题,请参考以下文章
我无法在 Swift Xcode 的视图控制器中集成水平滚动视图