Swift 3实现了在collectionView标题

时间:2016-12-16 08:41:13

标签: ios swift xcode swift3

我有一个带有多个部分和标题的UICollectionView,我想检测部分标题上的点按。

由于

,它对细胞的效果很好
func collectionView(_ collectionView: UICollectionView, didSelectItemAt indexPath: IndexPath)

但是节标题没有特定的内容。

我尝试在collectionView上实现tapGestureRecognizer,这是有效的,但在这种情况下,上述功能不再被触发。

是否有一种简单的方法可以在单元格和节标题上实现点击检测?

感谢您的帮助:)

2 个答案:

答案 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