我正在建一个桌面视图,我似乎无法同时得到正常的水龙头和长时间的压力工作。
我已将此代码放入viewDidLoad:

let longPress = UILongPressGestureRecognizer(target: self, action: #selector(handleLongPress))
myTableView.addGestureRecognizer(longPress)

这个代码是我的手势识别器:
@objc func handleLongPress(sender: UILongPressGestureRecognizer){
    if UILongPressGestureRecognizer.state == UIGestureRecognizer.State.began {

        let touchPoint = UILongPressGestureRecognizer.location(in: self.myTableView)
        if let indexPath = self.myTableView.indexPathForRowAtPoint(touchPoint) {
            print(indexPath.row)
        }
    }
}

我在堆栈溢出时发现了这段代码,但我认为它不是Swift 4的最新版本,因为我甚至无法在生成失败的情况下运行它。

最佳答案

UILongPressGestureRecognizer.state应该sender.stateUILongPressGesutreRecognizer.location应该sender.location。此外,indexPathForRowAtPoint()的签名已更新为indexPathForRow(at:)
更正代码:

@objc func handleLongPress(sender: UILongPressGestureRecognizer) {
    if sender.state == .began {
        let touchPoint = sender.location(in: self.myTableView)
        if let indexPath = self.myTableView.indexPathForRow(at:touchPoint) {
            print(indexPath.row)
        }
    }
}

UILongPressGestureRecognizer是类名,需要调用类实例。

关于ios - 在表格 View 中同时使用轻击手势和长按,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/53768638/

10-09 02:41