我有一个我从xib创建的自定义单元格。
看起来像这样:
我还有2个其他单元格只在类中创建,并将其子类化。
需要为containerView
所以在我UIViewController
我注册所有单元格。
@IBOutlet weak var collectionView: UICollectionView! {
didSet {
collectionView.dataSource = self
collectionView.delegate = self
collectionView.register(cell1.self, forCellWithReuseIdentifier: "cell1")
collectionView.register(cell2.self, forCellWithReuseIdentifier: "cell2")
collectionView.register(UINib(nibName: "ParentCell", bundle: nil), forCellWithReuseIdentifier: "parentCell")
}
}
并使细胞出列。
func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell {
if indexPath.row == 0 {
let cell = collectionView.dequeueReusableCell(withReuseIdentifier: "cell1", for: indexPath) as! cell1
cell.containerView.backgroundColor = UIColor.yellow
return cell
}
let cell = collectionView.dequeueReusableCell(withReuseIdentifier: "cell2", for: indexPath) as! cell2
cell.containerView.backgroundColor = UIColor.red
return cell
}
但应用程序崩溃了
致命错误:在解包可选值时意外发现nil
当我尝试使用containerView
有任何建议如何实施?
感谢
编辑:
我的问题是来自父单元的视图没有被实例化。 我明白了什么
致命错误:在解包可选值时意外发现nil
装置。我不明白为什么视图没有被实例化。
崩溃在
cell.containerView.backgroundColor
答案 0 :(得分:-2)
这个错误让你使用nil varible by!
检查两行
let cell = collectionView.dequeueReusableCell(withReuseIdentifier: "cell1", for: indexPath) as! cell1
let cell = collectionView.dequeueReusableCell(withReuseIdentifier: "cell2", for: indexPath) as! cell2