[英]My UICollectionViewCell item is nil?
我的CollectionViewCell imageView为零
我的细胞档案在这里
class MyTicketsCollectionViewCell: UICollectionViewCell {
@IBOutlet weak var imgTicket: UIImageView!
}
我的控制器文件代码在这里
class MyTicketsCollectionViewController: UICollectionViewController {
var photos: [String] = ["ticket1","ticket2","ticket3","ticket4"]
override func viewDidLoad() {
super.viewDidLoad()
self.collectionView?.register(MyTicketsCollectionViewCell.self, forCellWithReuseIdentifier: "MyTicketsCollectionViewCell")
}
override func collectionView(_ collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int {
return photos.count
}
override func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell {
let cell = collectionView.dequeueReusableCell(withReuseIdentifier: "MyTicketsCollectionViewCell", for: indexPath) as! MyTicketsCollectionViewCell
cell.imgTicket.image = UIImage(named: photos[indexPath.row])
return cell
}
}
错误为“线程1:致命错误:在展开可选值时意外发现nil”
当我调试它时
cell.imgTicket is nil
如何解决这个问题?
您MyTicketsCollectionViewCell
ActiveTicketsCollectionViewCell
出队,但该单元格已在MyTicketsCollectionViewCell
下MyTicketsCollectionViewCell
。
尝试将代码更改为
override func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell {
let cell = collectionView.dequeueReusableCell(withReuseIdentifier: "MyTicketsCollectionViewCell", for: indexPath) as! MyTicketsCollectionViewCell
cell.imgTicket.image = UIImage(named: photos[indexPath.row])
return cell
}
这里有2种可能的解决方案...
1.可能是ActiveTicketsCollectionViewCell没有imgTicket属性,或者您在这里提到了错误的单元类,因为您提到了另一个单元类名称MyTicketsCollectionViewCell,因此请尝试编写此代码。
let cell = collectionView.dequeueReusableCell(withReuseIdentifier: "MyTicketsCollectionViewCell", for: indexPath) as! MyTicketsCollectionViewCell
cell.imgTicket.image = UIImage(named: photos[indexPath.row])
return cell
2.可能是您错过了将属性( @IBOutlet weak var imgTicket: UIImageView!
)与插座(xib或情节提要)连接的可能性。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.