Как получить indexPath из жеста изображения в ячейке табличного представления - PullRequest
0 голосов
/ 11 октября 2019

У меня есть изображение в ячейке, я добавил распознаватель жестов для этого изображения. После удаления ячейки из таблицы indexPath ячеек под удаленной ячейкой является неправильным, что приводит к сбою приложения.

Как получить indexPath из распознавателя жестов при нажатии на изображение внутри ячейки?

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

PS Пожалуйста, не предлагайте добавлять кнопку в верхней части изображения, поскольку я уже знаю об этом.

@objc func imageTapped(_ gesture:UITapGestureRecognizer){

    guard let indexPath = myTableView.indexPathForRow(at: gesture.location(in: gesture.view)) else {
        print("Error: indexPath)")
        return
    }

    print("indexPath.row: \(indexPath.row)")
}

Ответы [ 2 ]

0 голосов
/ 11 октября 2019

Что ж, вам нужно немного изменить свой код вместо жеста. View, вам нужно найти местоположение в вашей таблице.

@objc func imageTapped(_ gesture:UITapGestureRecognizer){

guard let indexPath = myTableView.indexPathForRow(at: gesture.location(in: self.tableView)) else {
    print("Error: indexPath)")
    return
}

print("indexPath.row: \(indexPath.row)")

}

, и если проблема не устранена, вы можетеПрисвойте тегу imageView вот так

imageview.tag = indexPath.row //place it in cellForRow

//place below lines in gesture handler
guard let view = sender.view else {return}
let indexPath = IndexPath(row:view.tag, section: 0) //only works if section remains same/ unique
0 голосов
/ 11 октября 2019
@objc func imageTapped(_ gesture:UITapGestureRecognizer){
    guard let indexPath = myTableView.indexPathForRow(at: gesture.location(in: gesture.view)) else {
        print("Error: indexPath)")
        return
        else{
           path.indexPath(int x);
        }
    }
    print("indexPath.row: \(indexPath.row)")
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...