我有一个UICollectionView
,其中包含很多单元格。
我实现了两个功能:
问题出在这里
如果我同时点击两个(或多个)单元格,则只会按 1 视图。在这种情况下还可以。
但是,如果我同时点按两个单元格(或更多),它会按 2(或更多)一张一张。这会导致意外行为,并且应用有时会崩溃。
在有2个以上的单元被点击时,我如何禁用其他单元格来两次接收,并且仅允许推送“ 1 B视图” ?
我添加了doubleTapGesture.numberOfTouchesRequired = 1
,但这是行不通的。
这是我的代码:
@objc private func didReceiveDoubleTap(_ sender: ASCellNode) {
self.doubleTapDelegate?.myCellWasDoubleTapped?(self)
}
override func didLoad() {
super.didLoad()
let doubleTapGesture = UITapGestureRecognizer(target: self, action: #selector(MyCollectionCell.didReceiveDoubleTap(_:)))
doubleTapGesture.numberOfTapsRequired = 2
doubleTapGesture.delaysTouchesBegan = true
self.view.addGestureRecognizer(doubleTapGesture)
}
答案 0 :(得分:0)
看看是否可以通过布尔检查防止多次调用委托方法。
@objc private func didReceiveDoubleTap(_ sender: ASCellNode) {
if !processing {
processing = true // set processing = false where it's safe to do so.
self.doubleTapDelegate?.myCellWasDoubleTapped?(self)
}
}