单个 UIViewController 上的 2 个 UICollectionViews,具有不同数量的部分

Posted

技术标签:

【中文标题】单个 UIViewController 上的 2 个 UICollectionViews,具有不同数量的部分【英文标题】:2 UICollectionViews on a single UIViewController with a different number of sections 【发布时间】:2016-06-01 11:13:13 【问题描述】:

是否可以在单个 UIViewController 中包含 2 个 UICollectionViews 和不同数量的部分。我已经尝试通过以下方式执行此操作 -

- (NSInteger)numberOfSectionsInCollectionView: (UICollectionView *)collectionView 

    if (collectionView == cardscollectionView) 
    
       return 2;
    

    else
    
       return 1;
    

但它似乎不起作用。 UICollectionViews 最终都有一个部分。和我问的很像here。

【问题讨论】:

什么问题???看起来正确 两个集合视图最终都有 1 个部分 你为什么又问基本相同的问题?考虑使用子视图控制器... 您是否尝试过使用 CollectionView 标签? @wain : 我尊重你的意见,使用 childViewControllers 但不会很重它可以通过 singleViewController 实现 【参考方案1】:

请创建两个collectionview的两个不同对象 并尝试以下代码

-(NSInteger)numberOfSectionsInCollectionView:(UICollectionView*)collectionView
 
  if([collectionView isEqual:self.firstcollectionView])
      //return object count for firstCollectionView;
  
  else if([collectionView isEqual:self.secondCollectionView])
  
      //return object count for secondCollectionView;
   

【讨论】:

【参考方案2】:

在我看来,您期望 if 语句为真的情况似乎不是。

您是如何创建到您的cardscollectionview 的出口的? 如果有这个卡片集合视图的@property,你应该使用类似的东西:

if (collectionView == self.cardscollectionView) 
    return 2;
   
else
   
    return 1;
   

而且我不确定您的其他集合视图变量名称是什么,假设它称为 otherCollectionView,那么我认为以下内容也不起作用,我怀疑两个视图都有 3 个部分的代码:

if (collectionView == cardscollectionView) 
    return 2;
   
else if(collectionView == otherCollectionView)
   
    return 1;
   
else
    return 3;

首先检查cardcollectionview是否真的是一些东西而不是一些未初始化的变量(nil)。您可以尝试使用标签来解决您的问题,但此方法为您提供发件人(collectionView)的全部目的是让您确定我们在这里谈论的是哪一个。

至于我的遮阳篷,将cardscollectionView改为self.cardsCollectionView

【讨论】:

cardcollectionview 不为零,因为我可以在调试时检查。我的集合视图被声明为类变量而不是属性 为什么要定义为类变量? 实例变量*

以上是关于单个 UIViewController 上的 2 个 UICollectionViews,具有不同数量的部分的主要内容,如果未能解决你的问题,请参考以下文章

单个 UIViewcontroller,如何在多个 xib 之间切换?

UITabBar 内的单个 UIViewController 自动旋转

将单个UIViewController添加到tabBarController

无法在单个 UIViewController 中隐藏状态栏

具有单个 uiviewcontroller 和多个视图的自动布局 iOS

单个 UIViewController 中的多个集合视图未调用 cellForItemAtIndexPath indexPath