我有一个带有多个部分和标题的UICollectionView,我想检测部分标题上的点按。
由于
,它对细胞的效果很好func collectionView(_ collectionView: UICollectionView, didSelectItemAt indexPath: IndexPath)
但是节标题没有特定的内容。
我尝试在collectionView上实现tapGestureRecognizer,这是有效的,但在这种情况下,上述功能不再被触发。
是否有一种简单的方法可以在单元格和节标题上实现点击检测?
感谢您的帮助:)
答案 0 :(得分:5)
解决方案是将tapGestureRecognizer直接附加到该部分而不是collectionView上。并感谢John的标签提示。
override func collectionView(_ collectionView: UICollectionView, viewForSupplementaryElementOfKind kind: String, at indexPath: IndexPath) -> UICollectionReusableView {
...
let headerView = collectionView.dequeueReusableSupplementaryView(ofKind: kind, withReuseIdentifier: "inputStartHeader", for: indexPath) as! GameInputStartHeader
headerView.tag = indexPath.section
let tapGestureRecognizer = UITapGestureRecognizer(target:self, action:#selector(tapDetected))
headerView.addGestureRecognizer(tapGestureRecognizer)
...
}
答案 1 :(得分:0)
您可以将空白按钮设置为标题视图,然后将target
设置为它。
如果你想在每个headerView点击上执行不同的action
,那么你必须设置一些tag
,因为它是indexPath.section
。