单个 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 和多个视图的自动布局 iOS
单个 UIViewController 中的多个集合视图未调用 cellForItemAtIndexPath indexPath