【问题标题】:custom CollectionViewCell in swift fatal error快速致命错误中的自定义 CollectionViewCell
【发布时间】:2015-08-24 16:50:06
【问题描述】:

我做了一个基于 xib 的快速项目,并在我的视图控制器中创建了一个集合视图,添加了它的委托,使用默认的 collectionViewCell 一切都很好

问题是当我创建自定义单元格时 我在 xib 中正确添加了重用标识符

然后在视图控制器的确实加载中添加这些行

collectionViewCarType.delegate = self;
collectionViewCarType.dataSource = self;
collectionViewCarType.registerClass(MainScreenCollectionViewCell.self, forCellWithReuseIdentifier: "MainScreenCollectionViewCell");

我添加了断点,这里没有崩溃

然后在:

func collectionView(collectionView: UICollectionView, cellForItemAtIndexPath indexPath: NSIndexPath) -> UICollectionViewCell

我添加了这些行:

var cell = collectionView.dequeueReusableCellWithReuseIdentifier("MainScreenCollectionViewCell", forIndexPath: indexPath) as! MainScreenCollectionViewCell
cell.backgroundColor = UIColor.redColor()
cell.labelOfTime.text = "10 mins"
cell.labelOfType.text = "Mini"

return cell

应用程序在到达cell.labelOfTime.text 时崩溃

当我删除标签 2 行时,它可以很好地为单元格着色

我也使 2 标签和集合视图变得强大,但它也崩溃了

我删除了 xib 并使用不同的名称创建它并尝试使用它,但我也遇到了同样的错误

我是 swift 新手,我不知道我还能做什么

【问题讨论】:

  • 请编辑您的问题以包含崩溃错误消息。
  • 发布 MainScreenCollectionViewCell 的代码

标签: ios iphone swift uicollectionview


【解决方案1】:

您的问题是您创建了一个.xib,但您正在注册一个课程:

let nib = UINib(nibName: view, bundle: nil)
collectionViewCarType.registerNib(nib, forCellWithReuseIdentifier: "MainScreenCollectionViewCell")

这意味着当它加载你的类时,它只是被初始化,它不会从.xib 加载它,所以你的出口永远不会被设置。

【讨论】:

    【解决方案2】:

    您可以在故事板中做很多这样的事情,也许它会有所帮助。 首先,您可以通过故事板连接委托和数据源 - 只需从集合视图中按 ctrl 拖动,这样您就不需要自己编写(但这不是问题所在)。

    第二件事是你不需要创建nib文件,你也不需要注册单元格的类。

    1. 添加新的类文件 - 自定义 UICollectionViewCell 类 - 应如下所示:
    class customCell :UICollection {//implementation goes here}
    
    1. collectionViewCell 拖到您的collectionView

      1. 在自定义类部分的身份检查器中,将单元格的类更改为您刚刚创建的类的名称。

      2. 在属性检查器中添加标识符

      3. 将您想要的任何内容添加到单元格(图像、标签等)并将它们连接到您创建的类。

    这会让事情变得更容易,无论如何这里有一些参考资料可能会有所帮助。

    http://www.ioscreator.com/tutorials/custom-collection-view-cell-tutorial-ios8-swift http://www.raywenderlich.com/78550/beginning-ios-collection-views-swift-part-1

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-05-13
      • 1970-01-01
      相关资源
      最近更新 更多