У меня есть TapGestureRecognizer на моем TableView.
Мне досталась клетка, на которую я постучал.
Далее я хочу использовать местоположение, к которому подключен, чтобы проверить, не был ли ярлык на ячейке повернут.
Но, конечно, у меня есть расположение относительно TableView, а не CellView.
Знаете ли вы удобный способ преобразования местоположения TableView («World») в соответствующее местоположение CellView («Local»)?
Большое спасибо.
Пока мой код.
viewDidLoad:
let tapGesture = UITapGestureRecognizer(target: self, action: #selector(MyTableViewController.tapEdit(recognizer:)))
self.tableView.addGestureRecognizer(tapGesture)
tapGesture.delegate = self
Метод касания:
@objc func tapEdit(recognizer: UITapGestureRecognizer) {
if recognizer.state == UIGestureRecognizerState.ended {
let tapLocation = recognizer.location(in: self.tableView)
if let tapIndexPath = self.tableView.indexPathForRow(at: tapLocation) {
print("Tap Location: \(tapLocation)")
if let cell = self.tableView.cellForRow(at: tapIndexPath) as? MyTableViewCell {
// of course not working because of the relative location difference
if cell.myLabel.frame.contains(tapLocation) {
print("Taped cell at \(tapIndexPath). Hit Label.")
}
}
}
}
}
Привет