作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个包含大量单元格的 UICollectionView
。
我实现了两个功能:
问题是:
如果我同时点击两个单元格(或更多),它只会推送 1 一个 View 。在这种情况下没问题。
但是,如果我同时双击两个单元格(或更多),它会一个接一个地推送2(或更多) B View 。这会导致意外行为,应用有时会崩溃。
当有超过 2 个单元格被点击时,如何禁止其他单元格接收双击,并且只允许推送“1 B View ”?
我添加了 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)
}
最佳答案
看看是否可以通过 bool 检查来防止多次调用委托(delegate)方法。
@objc private func didReceiveDoubleTap(_ sender: ASCellNode) {
if !processing {
processing = true // set processing = false where it's safe to do so.
self.doubleTapDelegate?.myCellWasDoubleTapped?(self)
}
}
关于swift - 如何检测对 UICollectionView 中单元格 "only for a single finger"的双击?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56575947/
我是一名优秀的程序员,十分优秀!