Search code examples
iosswiftuicollectionviewcellcollectionview

Change Variable based on Cell Clicked


I want to set a variable to different string when a certain CollectionView cell is tapped. So cell1 is tapped then var cellTapped = "cell1", cell 2 is tapped then var cellTapped = "cell2" and so on. It was suggested that I

"create a custom cell and hold the value as property and read this value on didSelectCell()"

but I'm not sure how to do this (newbie).

(Swift 3)


Solution

  • You need to set UICollectionViewDelegate to your ViewController and then implement didSelectItemAt IndexPath that gets called when a cell is tapped.

    Something like this:

    func collectionView(_ collectionView: UICollectionView, didSelectItemAt indexPath: IndexPath) {
        cellTapped = "cell" + String(indexPath.row)
    }
    

    You could also have an array of Strings and index into the array based on the indexPath.row:

    let cellStringValues = ["cell1", "cell2", "cell3", ... , "celln"]
    
    func collectionView(_ collectionView: UICollectionView, didSelectItemAt indexPath: IndexPath) {
        cellTapped = cellStringValues[indexPath.row]
    }