Я хочу добавить три UICollectionViews
в один ViewController. Я хочу, чтобы у двух из них были собственные ячейки. Не было бы проблем, если бы у CollectionViews
не было пользовательских ячеек.
Это было бы моим решением без пользовательской ячейки:
func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell {
var cell: UICollectionViewCell?
if collectionView == gamePad{
cell = gamePad.dequeueReusableCell(withReuseIdentifier: "coloredCell", for: indexPath)
cell?.backgroundColor = UIColor.gray
cell?.layer.cornerRadius = (cell?.frame.height)!/2
}
if collectionView == blackCounterCV {
cell = blackCounterCV.dequeueReusableCell(withReuseIdentifier: "blackC", for: indexPath)
cell?.backgroundColor = UIColor.black
cell?.layer.cornerRadius = (cell?.frame.height)!/2
}
if collectionView == whiteCounterCV {
cell = whiteCounterCV.dequeueReusableCell(withReuseIdentifier: "whiteC", for: indexPath)
cell?.backgroundColor = UIColor.white
cell?.layer.cornerRadius = (cell?.frame.height)!/2
}
return cell!
}
У меня есть ярлык, который я создал в отдельном файле. Теперь я увидел, что я должен разыграть клетку как класс UICollectionViewCell
.
Это моя идея, которая не сработала:
func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell {
var cell: UICollectionViewCell?
if collectionView == gamePad{
cell = gamePad.dequeueReusableCell(withReuseIdentifier: "coloredCell", for: indexPath)
cell?.backgroundColor = UIColor.gray
cell?.layer.cornerRadius = (cell?.frame.height)!/2
}
if collectionView == blackCounterCV {
cell = blackCounterCV.dequeueReusableCell(withReuseIdentifier: "blackC", for: indexPath) as! BlackCCollectionViewCell
cell?.backgroundColor = UIColor.black
cell?.layer.cornerRadius = (cell?.frame.height)!/2
cell.blackLbl.text = "TEST"
}
if collectionView == whiteCounterCV {
cell = whiteCounterCV.dequeueReusableCell(withReuseIdentifier: "whiteC", for: indexPath) as! WhiteCCollectionViewCell
cell?.backgroundColor = UIColor.white
cell?.layer.cornerRadius = (cell?.frame.height)!/2
cell.whiteLbl.text = "TEST"
}
return cell!
}
Ошибка, которая отображается:
Значение типа 'UICollectionViewCell?' не имеет члена 'blackLbl' / 'whiteLbl'
Так что я думаю, что актерский состав не сработал так, как я хотел.
Как я могу решить эту проблему?