如何在选择单元格的UIcollectionViewCell特定单元格中删除长手势?

时间:2017-11-29 10:26:39

标签: ios swift

我已添加Long gesture这样:

longPress = UILongPressGestureRecognizer(target: self, action: #selector(handleLongGesture))

longPress.minimumPressDuration = 0.25
collectionview.addGestureRecognizer(longPress)

如何删除长手势?

2 个答案:

答案 0 :(得分:0)

您可以在单元格准备好显示之前删除手势。

func collectionView(_ collectionView: UICollectionView, willDisplay cell: UICollectionViewCell, forItemAt indexPath: IndexPath) {
        if let gesture = cell.gestureRecognizers?.filter({ (gesture) -> Bool in return  gesture is UILongPressGestureRecognizer }).first {
            cell.removeGestureRecognizer(gesture)
        }
    }

答案 1 :(得分:0)

您正在为整个集合视图添加手势识别器。

所以,如果你只想让一个单元格不响应长手势,那么对于那个特定单元格禁用手势识别器(使用touchesBegan回调来检查单元格内发生的触摸事件,如果是,请按代码处理事件你希望)。

如果您想在多个单元格上使用此功能,请为每个需要识别器的单元格添加手势识别器。