如何在一个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
是否等于collection1
或collection2
。 委托方法提供collectionView
作为它调用方法的UICollectionView,并且必须是两者之一。 如果你已经为collectionView
调用了一个collectionView
,那么这可能看起来很可疑,所以一定要按照逻辑来命名它们。