我想在一个视图中有两个或多个 CollectionView(UIViewController“delegate/sourcedata”)。
我已经完成了一个并且效果很好,但是我希望在同一页面中再添加一个与第一个不同的。我不需要部分,如果可能的话,我需要在一页中有两个不同的 CollectionView。我怎么能那样做?
我想在一个视图中有两个或多个 CollectionView(UIViewController“delegate/sourcedata”)。
我已经完成了一个并且效果很好,但是我希望在同一页面中再添加一个与第一个不同的。我不需要部分,如果可能的话,我需要在一页中有两个不同的 CollectionView。我怎么能那样做?
没有什么可以阻止您这样做。您只需要单独创建它并提供必要的代码来在委托中按照您的需要处理每个代码。每个委托方法在每次调用时都会将 collectionView 传递给它,因此根据两个集合视图中的哪一个处于活动状态来编写不同的代码并不是一个大问题。
例如,
- (NSInteger)collectionView:(UICollectionView *)collectionView numberOfItemsInSection:(NSInteger)section
第一个参数是进行调用的特定集合视图,因此您可以区分为它返回什么值。
如果您将有大量代码处理这两个 cvs,您可能会考虑将它们子类化是否有意义,但这是一个不同的问题。
您将像这样创建其中两个:
UICollectionView *cv1 = [[UICollectionView alloc] initWithFrame:CGRectMake(10.0f, 100.0f, 525.0f, 500.0f) collectionViewLayout:flowLayout];
UICollectionView *cv2 [[UICollectionView alloc] init ...
然后,您将每个添加为子视图。根据传入的是 cv1 还是 cv2 来处理委托方法。应该不是什么大问题,虽然有点痛苦。
您可以直接拖放 UICollectionView 表单 xib。如果它在屏幕下方,那么您必须在该滚动视图中添加多个 UICollectionView。