Ios Swift-无法将具有标识符的UICollectionElementKindCell类型的视图出列
我在尝试加载UICollectionView时收到此错误消息 2015-07-23 16:16:09.754 XXXXX[24780:465607]由于以下原因终止应用程序 未捕获的异常“NSInternalInconsistencyException”,原因:“可能” 不将具有以下类型的视图出列:UICollectionElementKindCell 标识符CollectionViewCell-必须为 标识或连接故事板中的原型单元 第一次抛出调用堆栈: 我的代码Ios Swift-无法将具有标识符的UICollectionElementKindCell类型的视图出列,ios,swift,uicollectionview,uicollectionviewcell,Ios,Swift,Uicollectionview,Uicollectionviewcell,我在尝试加载UICollectionView时收到此错误消息 2015-07-23 16:16:09.754 XXXXX[24780:465607]由于以下原因终止应用程序 未捕获的异常“NSInternalInconsistencyException”,原因:“可能” 不将具有以下类型的视图出列:UICollectionElementKindCell 标识符CollectionViewCell-必须为 标识或连接故事板中的原型单元 第一次抛出调用堆栈: 我的代码 @IBOutlet var c
@IBOutlet var collectionView: UICollectionView!
func collectionView(collectionView: UICollectionView, cellForItemAtIndexPath indexPath: NSIndexPath) -> UICollectionViewCell {
let cell = collectionView.dequeueReusableCellWithReuseIdentifier("CollectionViewCell", forIndexPath: indexPath) as! CollectionViewCell
cell.backgroundColor = UIColor.blackColor()
cell.textLabel?.text = "\(indexPath.section):\(indexPath.row)"
cell.imageView?.image = UIImage(named: "category")
return cell
}
我已经在storyboard inspector中声明了CollectionViewCell
,但错误消息仍然出现
查看您的异常后: 2015-07-23 16:16:09.754 XXXXX[24780:465607]*由于以下原因终止应用程序 未捕获的异常“NSInternalInconsistencyException”,原因:“可能” 不将具有以下类型的视图出列:UICollectionElementKindCell 标识符CollectionViewCell-必须为 标识符或连接故事板中的原型单元“*首次抛出 调用堆栈: 最后一部分是最重要的: 必须为应用程序注册nib或类 标识或连接故事板中的原型单元 这意味着您的集合视图没有注册自定义单元格。要解决此问题,请在
视图中添加以下内容:
var nib = UINib(nibName: "UICollectionElementKindCell", bundle:nil)
self.collectionView.registerNib(nib, forCellReuseIdentifier: "CollectionViewCell")
在viewDidLoad()中输入以下代码
collectionView.registerClass(YourCustomCellClass.self, forCellWithReuseIdentifier: "cell")
对于Swift 3:
collectionView.register(YourCustomCellClass.self, forCellWithReuseIdentifier: "cell")
我猜您是单独创建单元格笔尖,而不是在UICollectionView
中创建。如果是,则需要首先使用UICollectionView
注册nib文件。使用UINib*cellNib=[UINib-nibWithNibName:@“CollectionViewCell”bundle:nil];[self.collectionView注册表nb:cellNib forCellWithReuseIdentifier:@“CollectionViewCell”];非常感谢。我的问题是,我没有注册我的Nib,而是将类注册为:self.collectionView!。registerClass(customCollectionCell.self,forCellWithReuseIdentifier:“Cell”)您的代码可以正常工作。