gpt4 book ai didi

ios - 长按后如何在 UICollectionViewCell 上禁用 UILongPressGestureRecognizer?

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

目前,我在 cellForItemAt 的单元格上有一个带有 UILongPressGestureRecognizer 的 Collection View :

let longPress = UILongPressGestureRecognizer(target: self, action: #selector(handleLongPressOnCell))
cell.addGestureRecognizer(longPress)

当用户按住一个单元格时,它会触发一个函数来显示一个名为 cellDeleteAppear() 的菜单。但是,在菜单出现在屏幕上之后,用户可以按住另一个单元格,这将导致菜单再次弹出。

@objc func handleLongPressOnCell(_ sender: UILongPressGestureRecognizer) {
if sender.state == .began {

cellDeleteAppear()

let gestureLocation = sender.location(in: self.trayCollectionView)

if let indexPath = self.trayCollectionView.indexPathForItem(at: gestureLocation) {

indexPathForDeletion = indexPath

trayCollectionView.allowsSelection = false

} else {
print("long press error at index path")
}
}
}

我的目标是:当菜单处于事件状态时,用户不应按住另一个单元格以触发菜单弹出。感谢您的帮助!

最佳答案

然后做

var menuShown = false
@objc func handleLongPressOnCell(_ sender: UILongPressGestureRecognizer) {
if sender.state == .began {
guard !menuShown else { return }
menuShown = true

当你隐藏它的时候

menuShown = false

关于ios - 长按后如何在 UICollectionViewCell 上禁用 UILongPressGestureRecognizer?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59220858/

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