ios - 长按手势识别器仅在手指抬起时触发

标签 ios objective-c uitableview swift uigesturerecognizer

我在使用长按手势识别器时遇到了一个有趣的问题。我将其中一个放在 UITableView 上,只有在长按后抬起手指时它才会起作用。所以基本上,我会将手指放在一个单元格上,然后当我抬起手指时,它会触发长按。我通过在长按开始和结束时放置 printn 来解决这个问题,并且在我抬起手指后都会触发。我认为 tableViews 默认 panGestureRecognizer 可能会干扰 longPressGestureRecognizer。这是我在 viewDidLoad 中的代码:

    var longPress:UILongPressGestureRecognizer = UILongPressGestureRecognizer(target: self, action: "handleLongPress:")
    longPress.minimumPressDuration = 0.06
    longPress.delegate = self
    self.tableView.addGestureRecognizer(longPress)
    longPress.requireGestureRecognizerToFail(self.tableView.panGestureRecognizer)

最佳答案

在单元格中按下不会导致 TableView 的 panGestureRecognizer 失败,因此删除 requireGestureRecognizerToFail 方法,然后您应该在手指仍处于按下状态时进入 .Began 状态。

关于ios - 长按手势识别器仅在手指抬起时触发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29382052/

相关文章:

ios - 使用 Objective C 套接字发送 MDNS 请求

iphone - UIButton 导致崩溃

ios - Swift 2 - REST 服务和由搜索栏过滤的 TableView

ios - UITableViewCell 中图像的动态帧计算

ios - 用户是否看到 iOS 应用程序中使用的 bundle ID?

ios - 导航 Controller 未出现在仪表板 View Controller 上

ios - 我的实验表明渲染顺序在 THE 体系结构中对性能有很大影响,为什么?

ios - XCode、LLVM 和代码优化——最快、最小与无

ios - 未调用行的 TableView 的委托(delegate)方法单元格

ios - UIDevice.currentDevice().beginGenerateDeviceOrientationNotifications() 不起作用