我的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
如何解决这个问题?
答案 0 :(得分:0)
您正在ActiveTicketsCollectionViewCell
出列,但该单元格已在MyTicketsCollectionViewCell
下注册。
答案 1 :(得分:0)
尝试将代码更改为
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 :(得分:0)
这里有两种可能的解决方案......
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!
)与Outlet(xib或故事板)联系起来。