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
}

最佳答案

尝试使用UITapGestureRecognizer而不是UIGestureRecognizer。

关于ios - (快速)UICollectionViewCell带有手势识别器的嵌套 subview ,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/49390916/

10-14 11:50