如何在一个Viewcontroller上添加两个CollectionView?

最终的结果是在一个视图控制器上有两个集合视图。 不pipe是从不同的来源拉动,还是从另一个垂直滚动。

请告知如何实现这个编程。

我之前没有使用过UICollectionView ,但是从UIScrollViewinheritance而来,我有一个和UITableView非常相似的机会。

当使用一个CollectionView时,我假设你必须设置collectionView.delegate = self;collectionView.dataSource = self ,并在.h文件中,确保您的类正在使用<UICollectionViewDelegate, UICollectionViewDataSource>或类似的东西。 当您将collectionView的委托设置为您自己的视图( self )时,您需要确保为collectionView提供的数据来自您自己的类(在委托方法中)。 我相信你已经知道这一点,因为这应该是非常简单的一个collectionView。

当你使用两个collectionView时,你必须设置

 collection1.delegate = self; collection2.delegate = self; collection1.dataSource = self; collection2.dataSource = self; 

这反过来这样做,这两个collectionViews将调用委托方法。 例如,委托方法-collectionView:cellForItemAtIndexPath:将被调用两次。 一次为collection1,一次为collection2。

为了确保他们得到正确的数据发送给他们,你应该在每个委托和dataSource方法的开始创build一个简单的检查,如下所示:

 - (UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath { if(collectionView == collection1) { //return cell for collection1 } else { //return cell for collection2 } } 

在这里,我正在检查collectionView是否等于collection1collection2 。 委托方法提供collectionView作为它调用方法的UICollectionView,并且必须是两者之一。 如果你已经为collectionView调用了一个collectionView ,那么这可能看起来很可疑,所以一定要按照逻辑来命名它们。