根据单击的单元格更改变量

Change Variable based on Cell Clicked

我想在点击某个 CollectionView 单元格时将变量设置为不同的字符串。因此,先点击单元格 1,然后 var cellTapped = "cell1",然后点击单元格 2,然后 var cellTapped = "cell2",依此类推。有人建议我

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

但我不知道该怎么做(新手)。

(Swift 3)

您需要将 UICollectionViewDelegate 设置为您的 ViewController,然后实现 didSelectItemAt IndexPath,它会在点击单元格时被调用。

像这样:

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

您还可以拥有一个字符串数组,并根据 indexPath.row:

对数组进行索引
let cellStringValues = ["cell1", "cell2", "cell3", ... , "celln"]

func collectionView(_ collectionView: UICollectionView, didSelectItemAt indexPath: IndexPath) {
    cellTapped = cellStringValues[indexPath.row]
}

将您的视图控制器设置为 UICollectionView 的委托。你的视图控制器应该继承自 UICollectionViewDelegate。然后在 VC 的 viewDidLoad() 中,将 UICollectionView 的委托变量设置为 ViewController。要捕获选择事件,请重写以下 UICollectionViewDelegate 函数。

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

查看 https://www.raywenderlich.com/136159/uicollectionview-tutorial-getting-started 了解有关使用集合视图的更多详细信息