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