自定义 CollectionView 崩溃 iOS

Posted

技术标签:

【中文标题】自定义 CollectionView 崩溃 iOS【英文标题】:Custom CollectionView crashes iOS 【发布时间】:2013-11-06 11:21:32 【问题描述】:

我已经实现了自定义 CollectionView,但是当我运行我的应用程序时它会崩溃并显示, 错误:[UICollectionViewCell Mylabel]:无法识别的选择器发送到实例...

这是我的代码 sn-p,

- (void)viewDidLoad 

    [super viewDidLoad];

    [self.collectionView registerClass:[UICollectionViewCell class] forCellWithReuseIdentifier:@"cvCell"];


- (NSInteger)collectionView:(UICollectionView *)view numberOfItemsInSection:(NSInteger)section  // No of Rows..

    CGSize result = [[UIScreen mainScreen] bounds].size;

    if(result.height == 480) //3.5"
    
        return 3;
    
    else // 4"
    
        return 4;
    


- (NSInteger)numberOfSectionsInCollectionView: (UICollectionView *)collectionView  // No of Columns..
    return 2;


- (UICollectionViewCell *)collectionView:(UICollectionView *)cv cellForItemAtIndexPath:(NSIndexPath *)indexPath 

   CollectionViewCell *cell = [cv dequeueReusableCellWithReuseIdentifier:@"cvCell" forIndexPath:indexPath];

    if (cell == nil)
    
        NSArray *nib = [[NSBundle mainBundle] loadNibNamed:@"CollectionViewCell" owner:self options:nil];
        for (id oneObject in nib) if ([oneObject isKindOfClass:[CollectionViewCell class]])
            cell = (CollectionViewCell *)oneObject;
    

    cell.Mylabel.text=@"I am label";
    cell.backgroundColor= [UIColor yellowColor];

    return cell;

我在哪里做错了?请提前帮助和感谢

【问题讨论】:

由于未捕获的异常“NSInvalidArgumentException”而终止应用程序,原因:“-[UICollectionViewCell 标签]:无法识别的选择器发送到实例 0xa446490” 【参考方案1】:

我不确定你的问题,但我有类似的问题。

我从委托中删除了这一行:

if (cell == nil)
    
        NSArray *nib = [[NSBundle mainBundle] loadNibNamed:@"CollectionViewCell" owner:self options:nil];
        for (id oneObject in nib) if ([oneObject isKindOfClass:[CollectionViewCell class]])
            cell = (CollectionViewCell *)oneObject;
    

我在 View Did Load 中添加了这个:

UINib *cellNib = [UINib nibWithNibName:@"CollectionViewCell" bundle:nil];
    [self.collectionView registerNib:cellNib forCellWithReuseIdentifier:@"cellID"];

也许这对你有帮助

【讨论】:

【参考方案2】:

试试这个

CollectionViewCell *cell = (CollectionViewCell *)[cv dequeueReusableCellWithReuseIdentifier:@"cvCell" forIndexPath:indexPath];

【讨论】:

Textlabel 是我的标签名称

以上是关于自定义 CollectionView 崩溃 iOS的主要内容,如果未能解决你的问题,请参考以下文章

CollectionView + UIKit Dynamics 在 performBatchUpdates 上崩溃:

iOS如何知道使用自定义委托按下哪个按钮CollectionView

如何在 swift ios 的自定义 collectionView 单元中将字符串值显示到多个标签?

iOS版;以编程方式uicollectionView与自定义标头

集合视图单元格崩溃

频繁重新加载collectionView时崩溃