最终结果是在一个视图控制器上具有2个集合视图。两者都是从不同来源拉出的,一个都应水平滚动,而另一个则应垂直滚动。
请提供有关如何以编程方式实现此目标的建议。
我以前从未使用UICollectionView
过,但是由于它继承自UIScrollView,所以我有机会与它非常相似UITableView
。
使用一个CollectionView时,假设您必须设置collectionView.delegate = self;
和collectionView.dataSource = self
,并在.h
-file中确保您的类正在使用<UICollectionViewDelegate, UICollectionViewDataSource>
或类似的东西。在将collectionView的委托设置为自己的视图(self
)时,请确保为collectionView提供的数据来自委托方法中的您自己的类。我相信您已经知道这一点,因为使用单个collectionView应该很简单。
当使用两个collectionViews时,必须设置
collection1.delegate = self;
collection2.delegate = self;
collection1.dataSource = self;
collection2.dataSource = self;
这将依次使两个collectionViews都调用委托方法。例如,委托方法-collectionView:cellForItemAtIndexPath:
将被调用两次。一次用于收集1,一次用于收集2。
为了确保他们获得正确的数据发送给您,您应该在每个委托和dataSource方法的开头创建一个简单的检查,如下所示:
- (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
,因此请确保在逻辑上命名它们。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句