如何在一个 Viewcontroller 上添加两个 CollectionView? [关闭]

2023-12-30

最终结果是在一个视图控制器上有 2 个集合视图。两者都从不同的来源拉取,其中一个应该水平滚动,而另一个则垂直滚动。

请告知如何以编程方式实现这一目标。


我没用过UICollectionView之前,但由于它继承自 UIScrollView,我冒着风险,它与UITableView.

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

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

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

这将使两个 CollectionView 都调用委托方法。 例如,委托方法-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 or collection2。委托方法提供collectionView作为 UICollectionView,它正在调用方法,并且必须是两者之一。如果您调用了其中一个集合视图,这可能看起来很可疑collectionView不过,所以一定要按逻辑命名它们。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在一个 Viewcontroller 上添加两个 CollectionView? [关闭] 的相关文章

随机推荐