gpt4 book ai didi

ios - collectionView 中的 TapGesture

转载 作者:行者123 更新时间:2023-11-28 06:26:14 28 4
gpt4 key购买 nike

我想向 Collection View 添加双击手势或其他一些功能,以下载附加到所选单元格的文件。

我有一个双击手势识别器在工作,当你在 Collection View 中双击时,它会打印出该点。然而,只要我尝试双击一个单元格,内置手势识别器就会生效并运行 didSelectItemAt。

有没有办法在不触发 didSelectItemAt 中的代码的情况下添加双击?或者有没有其他方法可以在不向 viewController 添加按钮的情况下实现此功能的想法?

这是我在具有 Collection View 的 View Controller 的 viewDidLoad 中使用的手势代码:

let doubleTap: UITapGestureRecognizer = UITapGestureRecognizer(target: self, action: #selector(didDoubleTap))
doubleTap.numberOfTapsRequired = 2
self.collectionView.addGestureRecognizer(doubleTap)

还有我的 doubleTap 函数:

func didDoubleTap(gesture: UITapGestureRecognizer) {

let point: CGPoint = gesture.location(in: self.collectionView)

print(point)

if let selectedIndexPath: IndexPath = self.collectionView.indexPathForItem(at: point) {
let selectedCell: UICollectionViewCell = self.collectionView.cellForItem(at: selectedIndexPath as IndexPath)!
print("cell \(selectedCell) was double tapped")
}
}

请注意,我曾尝试将其添加到单元格本身,但我无法使其正常工作。该单元格是一个自定义的 UICollectionViewCell 并且没有 viewDidLoad 函数,因此要创建手势,我必须创建一个委托(delegate)来调用代码以从保存 Collection View 的 viewController 设置手势,而我只是收到错误。

最佳答案

您可以在手势识别器上尝试 delaysTouchesBegan = true。这应该会延迟导致 didSelect 的触摸处理并从手势识别器运行您的操作

关于ios - collectionView 中的 TapGesture,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41789321/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com