【问题标题】:Custom Collection Cell Error自定义集合单元格错误
【发布时间】:2014-12-02 22:19:42
【问题描述】:

所以我只是想将我的自定义单元格类与我的集合单元格链接起来。我已经为此工作了两天,无法弄清楚我做错了什么。我已经遵循了这方面的教程并在那里取得了成功,但无法弄清楚我自己的项目中缺少什么。

//WORKING 
let cell = collectionView.dequeueReusableCellWithReuseIdentifier(reuseIdentifier, forIndexPath: indexPath) as UICollectionViewCell

//Crashes
let cell = collectionView.dequeueReusableCellWithReuseIdentifier(reuseIdentifier, forIndexPath: indexPath) as ChampionViewCell

即使我尝试创建一个没有任何其他内容的新项目,我也会遇到这个问题。每当我链接我的自定义单元类时,应用程序就会崩溃。

这是我的自定义单元格类:

import UIKit
class ChampionViewCell: UICollectionViewCell {
    @IBOutlet weak var champImage: UIImageView!
}

我的单元格标识符在情节提要中和我的 CollectionViewController 文件的顶部设置为“ChampionCell”。我有视图控制器和链接到情节提要的单元格。

我真的无法弄清楚我错过了什么。抱歉,如果这是一个超级新手问题,但我真的很难弄清楚。

感谢您的帮助!

【问题讨论】:

    标签: ios swift uicollectionview uicollectionviewcell


    【解决方案1】:

    为了让dequeueReusableCellWithReuseIdentifier 实例化自定义单元格,您必须使用此UICollectionView 方法注册单元格类:

    func registerClass(_ cellClass: AnyClass?, forCellWithReuseIdentifier identifier: String)
    

    只需在您的 viewDidLoad 方法中调用该方法即可。

    该方法应按如下方式调用:

    self.collectionView.registerClass(ChampionViewCell.self, forCellWithReuseIdentifier: reuseIdentifier)
    

    其中reuseIdentifier 是包含单元标识符的变量/属性。

    【讨论】:

    • 这似乎不起作用。我收到了两个错误:1. 参数中的无关 '_':'cellClass' 没有关键字参数名称 2. 函数声明主体中应为 '{'
    • @StuartCasarotto:我认为您以错误的方式调用该方法 - 请参阅更新的答案
    • 你是对的。谢谢你,这完全有道理,我很伤心,我没想过早点去那里。谢谢你。我知道这会很简单。
    • 快速提问:我接下来要尝试向我的单元格中添加图片。我已将图片添加到我的 Images.xcassets 并使用以下代码访问它( cell.champImage.image = UIImage(named: "testPhoto") )但不断收到意外的 nil。猜猜为什么?
    • 您确定名称拼写正确吗?除此以外什么都想不出来
    【解决方案2】:

    在故事板上,单元格的类需要设置为ChampionViewCell。当单元格出列时,它将使用给定的标识符(在您的情况下为ChampionCell)从情节提要中出列一个单元格。但是出队的单元格仍然是UICollectionViewCell

    在情节提要上,选择单元格,然后在 Inspector 面板(右侧面板)中,选择 Identity Inspector(看起来有点像报纸的那个)。 “类”应该说“UICollectionViewCell”。将此更改为“ChampionViewCell”。

    【讨论】:

      猜你喜欢
      • 2013-10-14
      • 1970-01-01
      • 2018-12-11
      • 1970-01-01
      • 2014-12-31
      • 1970-01-01
      • 2012-03-10
      • 2020-11-22
      • 1970-01-01
      相关资源
      最近更新 更多