Прежде всего вы неправильно используете collectionView:willDisplay:forItemAt
. Переместите все в collectionView:cellForItemAt
, замените return
на return cell
и удалите willDisplay:
func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell {
let cell = collectionView.dequeueReusableCell(withReuseIdentifier: "CardCell", for: indexPath) as! CardCollectionViewCell
//get card that
let card = cardArray[indexPath.row]
cell.setCard(card)
return cell
}
func collectionView(_ collectionView: UICollectionView, willDisplay cell: UICollectionViewCell, forItemAt indexPath: IndexPath) { ... }
Ошибка довольно очевидна: вы никогда не объявляли, что cell
является областью действия didSelectItemAt
. Изменение
let cell = collectionView.cellForItem(at: indexPath) as! CardCollectionViewCell