如何在 UICollectionViewSectionHeader 中嵌入 UICollectionView

Posted

技术标签:

【中文标题】如何在 UICollectionViewSectionHeader 中嵌入 UICollectionView【英文标题】:How to embed UICollectionView inside UICollectionViewSectionHeader 【发布时间】:2014-08-29 09:10:34 【问题描述】:

我的应用程序因为

而崩溃
[UICollectionViewFlowLayout collectionView:numberOfItemsInSection:]: unrecognized selector sent to instance. 

这是因为我的委托方法在我的UICollectionReusableView 中,它不是视图控制器。如何在 UICollectionViewSectionHeader 中嵌入 UICollectionView 并防止我的应用在设置 UICollectionView 的委托时崩溃。

#import "HomeBannerReusableView.h"
#import "HomeBannerCell.h"

@interface HomeBannerReusableView () <UICollectionViewDelegate, UICollectionViewDataSource>
@property (weak, nonatomic) IBOutlet UICollectionView *collectionView;

@end

@implementation HomeBannerReusableView

- (void)awakeFromNib 
    // Initialization code
    [self.collectionView registerNib:[UINib nibWithNibName:@"HomeBannerCell" bundle:nil] forCellWithReuseIdentifier:@"HomeBannerCell"];


- (NSInteger)collectionView:(UICollectionView *)collectionView numberOfItemsInSection:(NSInteger)section 
    return 1;


- (UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath 
    HomeBannerCell *cell = [collectionView dequeueReusableCellWithReuseIdentifier:@"HomeBannerCellReusableView" forIndexPath:indexPath];
    return cell;

【问题讨论】:

【参考方案1】:

无需将collectionView delegate 和dataSource 设置为UIViewController 的子类。在我看来,您不小心将 dataSource 设置为您的布局,而不是 HomeBannerReusableView。检查您设置它的位置(XIB、Storyboard、代码)。

【讨论】:

以上是关于如何在 UICollectionViewSectionHeader 中嵌入 UICollectionView的主要内容,如果未能解决你的问题,请参考以下文章

如何在表单提交后保留文本(如何在提交后不删除自身?)

如何在异步任务中调用意图?或者如何在 onPostExecute 中开始新的活动?

在 Avkit 中如何使用这三行代码,以及如何将音乐静音”

如何在 JDBC 中启动事务?

如何在 Fragment 中调用 OnActivityResult 以及它是如何工作的?

如何使用 Firebase 在 Web 上托管 Flutter?它的效果如何?