(Swift)UICollectionViewCell嵌套子视图与手势识别器

时间:2018-03-20 17:43:04

标签: ios swift uicollectionview uigesturerecognizer uicollectionviewcell

storyboard中,我创建了一个嵌入了两个单独的UICollectionViewCell的自定义UIViews,它们分别嵌入了自己的一系列UI元素。

根据某个条件,我显示/隐藏嵌入的UIViews

我无法解决的问题是在显示的UIView内触发多个触摸事件。例如,单击垃圾按钮时触摸事件,单击周围UIView本身的触摸事件。

以下是我UIViewController的相关代码段:

 func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell {
    let cell = collectionView.dequeueReusableCell(withReuseIdentifier: reuseIdentifier, for: indexPath as IndexPath) as! ExampleCollectionViewCell

    cell.FirstUIView.isHidden = true
    cell.SecondUIView.isHidden = false

    let tap = UIGestureRecognizer(target: self, action: #selector(onEdit))
    tap.cancelsTouchesInView = false
    cell.SecondUIView.addGestureRecognizer(tap)
    cell.SecondUIView.isUserInteractionEnabled = true

    cell.SecondUIViewTrashButton.addTarget(self, action: #selector(onDelete), for: .touchUpInside)

    return cell
}

1 个答案:

答案 0 :(得分:0)

尝试使用UITapGestureRecognizer而不是UIGestureRecognizer。