UICollectionView 出错

Posted

技术标签:

【中文标题】UICollectionView 出错【英文标题】:error with UICollectionView 【发布时间】:2014-02-14 06:51:36 【问题描述】:

我有一个非常简单的集合视图,但不知何故它总是崩溃。这是错误消息:

由于未捕获的异常“NSInternalInconsistencyException”而终止应用程序,原因:“无法使类型视图出列:带有标识符重用的 UICollectionElementKindCell - 必须为标识符注册一个 nib 或一个类或连接故事板中的原型单元格”

还有我的代码:

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

    static NSString *reuseCellIdentifier = @"Reuse";

    UICollectionViewCell *cell = [collectionView dequeueReusableCellWithReuseIdentifier:reuseCellIdentifier forIndexPath:indexPath];

    if (!cell) 
        cell = [[UICollectionViewCell alloc]initWithFrame:CGRectMake(0, 0, 106, 95)];
    

    UIImageView *imageView = [[UIImageView alloc]initWithFrame:CGRectMake(0, 0, 45, 45)];

    imageView.image = [UIImage imageNamed:@"image_name"];
    [cell addSubview:imageView];

    UILabel *name = [[UILabel alloc]initWithFrame:CGRectMake(0, 0, 106, 15)];
    name.text = @"user";

    return cell;

救命!!

【问题讨论】:

在 Collection Reusable View 部分中将单元格标识符设为“Reuse”。 【参考方案1】:

似乎您没有在情节提要上声明单元重用标识符,请执行以下步骤:

- 选择故事板上的单元格

- 在“Collection Reusable view identifier”中输入重用标识符,在您的情况下输入“Reuse”

希望对您有所帮助..

【讨论】:

【参考方案2】:

使用这个,如果没有设置委托。取悦你的代表。

在调用collection view的dequeueReusableCellWithReuseIdentifier:forIndexPath:方法之前,你必须使用这个方法或者registerNib:forCellWithReuseIdentifier:方法告诉collection view如何创建一个给定类型的新cell。如果指定类型的单元格当前不在重用队列中,则集合视图使用提供的信息自动创建新的单元格对象。

  [self.yourcollectionView registerClass:[UICollectionViewCell class] forCellWithReuseIdentifier:@"Cell"];

apple doc

【讨论】:

【参考方案3】:

查看此链接.. http://www.appcoda.com/ios-programming-uicollectionview-tutorial/。 给出 Identifier(Reuse) 名称和静态 NSString *reuseCellIdentifier = @"Reuse"(this name);应该是一样的..

【讨论】:

以上是关于UICollectionView 出错的主要内容,如果未能解决你的问题,请参考以下文章

在 UITableViewCell 中添加 UICollectionView 时出错

将补充标题视图添加到 UICollectionView 时出错

设置 UICollectionViewController 时出错 - 笔尖但没有获得 UICollectionView

如何在Objective c中显示UICollectionView的水平滚动?

使用 Swift 的 UICollectionView

xcode 开发 创建uicollectionview 崩掉了