我有一个UICollectionViewController,它可以垂直滚动(如tableview)。我创建了一个自定义UICollectionViewCell。在自定义单元格中,有复选标记。当用户单击对勾标记时,我需要某种事件来单击。
我尝试过的是最重要的:
override func collectionView(_ collectionView: UICollectionView, didSelectItemAt indexPath: IndexPath) {
print("clicked")
}
,但仅在用户单击单元格时执行。但是,如上所述,该单元格包含复选标记...我需要找出何时单击每个单独的复选标记。
这可能吗?
答案 0 :(得分:0)
您可以将IBAction添加到UICollectionViewCell
类中,并处理该IBAction中的点击,如果您需要它来更改父视图控制器上的某些内容,则可以有两个选择,可以使用委托或传递单元的控制器。
在父视图控制器上:
func collectionView(collectionView: UICollectionView, cellForItemAtIndexPath indexPath: IndexPath) -> UICollectionViewCell {
let cell = collectionView.dequeueReusableCellWithReuseIdentifier("Cell", forIndexPath: indexPath) as! CustomCollectionViewCell
cell.controller = self
return cell
}
在UICollectionViewCell类上:
var controller: ParentViewController?
@IBAction func checkmarkPressed(sender: UIButton) {
print("checkmarkPressed")
controller.someFunction()
}