Вы можете использовать UICollectionViewDelegate
метод, чтобы обнаружить нажатие на ячейку, но для использования этого прежде всего UICollectionView
необходимо подтвердить delegate
с помощью UIViewController
, например:
collectionView.delegate = self
inваш viewDidLoad
метод.
тогда вам нужно заменить
extension ViewController: UICollectionViewDataSource {
на
extension ViewController: UICollectionViewDataSource, UICollectionViewDelegate {
и использовать метод делегата
func collectionView(_ collectionView: UICollectionView, didSelectItemAt indexPath: IndexPath) {
}
иВы можете получить выбранное имя изображения с помощью
let caseName = OLLData.list[indexPath.item].image
print(caseName)
и didSelectItemAt
будет выглядеть так:
func collectionView(_ collectionView: UICollectionView, didSelectItemAt indexPath: IndexPath) {
let caseName = OLLData.list[indexPath.item].image
print(caseName)
}
РЕДАКТИРОВАТЬ:
Ваш extension
будет выглядеть так:
extension ViewController: UICollectionViewDataSource, UICollectionViewDelegate {
func collectionView(_ collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int {
return OLLData.list.count
}
func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell {
let cell = collectionView.dequeueReusableCell(withReuseIdentifier: "PhotoCell", for: indexPath) as! PhotoCell
let image = OLLData.list[indexPath.item].image
let caseName = OLLData.list[indexPath.item].image
cell.label.text = caseName
cell.imageView.image = UIImage(named: image)
return cell
}
func collectionView(_ collectionView: UICollectionView, didSelectItemAt indexPath: IndexPath) {
let caseName = OLLData.list[indexPath.item].image
print(caseName)
}
}