当某个CollectionView单元格被点击时,我想设置一个变量为不同的字符串。因此cell1被点击然后var cellTapped = "cell1"
,单元2被点击然后var cellTapped = "cell2"
依此类推。有人建议我更改基于单元格单击的变量
“创建一个自定义单元格并保持价值财产和阅读didSelectCell()这个 值”
,但我不知道如何做到这一点(新手)。
(SWIFT 3)
当某个CollectionView单元格被点击时,我想设置一个变量为不同的字符串。因此cell1被点击然后var cellTapped = "cell1"
,单元2被点击然后var cellTapped = "cell2"
依此类推。有人建议我更改基于单元格单击的变量
“创建一个自定义单元格并保持价值财产和阅读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]
}
当我尝试在下一个视图中获取变量时,它不起作用。在第二个VC中,我让'CV = CollectionViewController()'然后在'viewDidLoad()'我有'lbl.text = CV.cellTapped'它只是没有给出值。 –
您需要将第一个VC的值传递给第二个VC。在第二个VC中创建另一个CollectionView不会给你在前一个视图中点击的值。 – toddg
设置您的视图控制器是的委托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与收集意见
工作是'cell1'和'cell2'只是样品。如果这就是你所需要的,那么将'indexpath.row'附加到'cell'前缀是一个简单的问题。 – toddg
会有更多的单元格,但命名和设置var就像那样很好。但我不知道是在哪里/如何设置它以识别cell1/cells2/cell3/cell4 ...被点击。如果你有这样的示例代码,它会帮助很多@toddg –