使用一个collectionview IOS滚动多个UICollectionView

我正在开发一个应用程序,其中,我有UITableView,在uitableview的每个单元格中,我都有uicollectionview水平滚动。

现在,我想要的是:当我向任何方向滚动一个集合视图时,我的表的所有其他集合视图应该在该方向上相应地滚动。

我尝试使用scrollview委托,但它无法正常工作。

我陷入了这个问题。 我在互联网上看了但还没找到任何东西。

需要帮助! 谢谢

好的我已经检查了我的代码,我的工作是:我在屏幕的左侧有一个tableView,其余的是UIScrollView,在其中我在顶部有一个宽度等于collectionView.contentSize的视图.width,在该视图下方,collectionView,其高度等于屏幕高度,其宽度等于其contentSize.width。 之后,ScrollView只能水平滚动,而collectionView只能垂直滚动,所以,当你水平滚动时,tableView会停留,标题视图和集合会水平滚动,如果你垂直滚动,标题视图会保持不变,并且集合视图和tableView同时滚动(您必须链接他们的代理)。

在此处输入图像描述

这就是我在UIScrollViewDelegate中所做的

pragma mark – UIScrollViewDelegate

- (void)scrollViewDidScroll:(UIScrollView *)scrollView { if (scrollView == _scrollView) { if (scrollView.contentOffset.y > 0 || scrollView.contentOffset.y < 0 ) { scrollView.contentOffset = CGPointMake(scrollView.contentOffset.x, 0); } } else { _tableView.contentOffset = CGPointMake(0, scrollView.contentOffset.y); _collectionView.contentOffset = CGPointMake(0, scrollView.contentOffset.y); } } 

tableView单元格的高度和collectionView单元格的高度是相同的。

您可以通过将包含视图控制器声明为UITableViewDelegate并实现scrollView委托方法来协调两个tableview:

 // say tv0 and tv1 are outlets to two table views - (void)scrollViewDidScroll:(UIScrollView *)scrollView { if (scrollView == self.tv0) { self.tv1.contentOffset = self.tv0.contentOffset; } else if (scrollView == self.tv1) { self.tv0.contentOffset = self.tv1.contentOffset; } } 

首先要看几个​​具有相同长度内容的简单表视图。 您需要添加条件逻辑来处理一个视图的contentSize大于另一个视图的大小。