Swift - 无法出现类型的视图:带标识符的UICollectionElementKindCell

时间:2015-07-23 08:23:14

标签: ios swift uicollectionview uicollectionviewcell

尝试加载UICollectionView时收到此错误消息。

  

2015-07-23 16:16:09.754 XXXXX [24780:465607]终止应用程序   未被捕获的异常' NSInternalInconsistencyException',原因:'可以   不要出类型的视图:UICollectionElementKindCell with   标识符CollectionViewCell - 必须注册一个nib或类   标识符或连接故事板中的原型单元'

     

第一次抛出调用堆栈:

我的代码

@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

    }

我已在故事板检查器中声明CollectionViewCell,但仍会出现错误消息。

enter image description here

3 个答案:

答案 0 :(得分:10)

看了你的例外后:

  

2015-07-23 16:16:09.754 XXXXX [24780:465607] *终止应用程序   未捕获的异常'NSInternalInconsistencyException',原因:'可以   不要出类型的视图:UICollectionElementKindCell with   标识符CollectionViewCell - 必须注册一个nib或类   标识符或连接故事板中的原型单元'*首先抛出   调用堆栈:

最后一部分是最重要的:

  

必须注册一个笔尖或一个类   标识符或连接故事板中的原型单元

这表示您的集合视图尚未注册您的自定义单元格。要解决此问题,请在var nib = UINib(nibName: "UICollectionElementKindCell", bundle:nil) self.collectionView.registerNib(nib, forCellReuseIdentifier: "CollectionViewCell") 中添加以下内容:

SELECT * FROM `your_table` WHERE `username` = "USERNAME TO REGISTER"

答案 1 :(得分:7)

对于Swift 3:

collectionView.register(YourCustomCellClass.self, forCellWithReuseIdentifier: "cell")

答案 2 :(得分:0)

在你的viewDidLoad()中输入此代码

collectionView.registerClass(YourCustomCellClass.self, forCellWithReuseIdentifier: "cell")