Используя жест касания и длительное нажатие одновременно в табличном представлении - PullRequest
0 голосов
/ 13 декабря 2018

Я создаю табличное представление, и я не могу заставить работать как обычные, так и длительные нажатия.

Я поместил этот код в свой 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, потому что я не могу даже запустить его без сбоя сборки.

1 Ответ

0 голосов
/ 13 декабря 2018

UILongPressGestureRecognizer.state должно быть sender.state и UILongPressGesutreRecognizer.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 - это имя класса, вам нужно вызывать экземпляр класса.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...