我有一个集合视图,其中包含多个以编程方式创建的单元格。我想在用户点击特定单元格时将变量更新为其他值。例如:单元格1被轻敲 - > var test =" cell1" ,cell2是tapped var test =" cell2"。通常我只是通过从故事板中拖出来创建一个IBAction,但我不确定在这种情况下如何做。
我使用的是Swift 3.1
答案 0 :(得分:1)
要向UITableView
,UICollectionView
以及显示数据集合的其他类型的视图添加交互性,您无法使用Storyboard操作,因为内容是在运行时动态生成的,故事板只能用于静态内容。
相反,您需要做的是将UICollectionView
的{{1}}属性设置为实现UICollectionViewDelegate
协议的对象。作为协议一部分定义的方法之一是delegate
方法。只要用户选择(点击)具有collectionView(_:didSelectItemAt:)
的集合视图单元作为参数,就会调用此方法。您可以在该方法中更新变量。只需记住在IndexPath
上使用deselectItem(at:)
方法处理点击后取消选择单元格。
答案 1 :(得分:0)
您需要实现UICollectionView委托。它就像这样
在索引路径中选择项目将给出所选单元格的索引路径。使用索引路径或您正在使用的数据源数组的任何其他属性,您可以修改变量值。
override func collectionView(collectionView: UICollectionView, didSelectItemAtIndexPath indexPath: NSIndexPath) {
if let cell = collectionView.cellForItemAtIndexPath(indexPath) {
//check your condition and modify the variable value depending on index path or any other property you are referring to.
}
}