Я хотел бы расширить UITableView
, добавив пользовательский UIPanGestureRecognizer
:
extension UITableView {
func addCustomPanGestureRecognizer() {
let panGestureRecognizer = UIPanGestureRecognizer()
panGestureRecognizer.delegate = self
addGestureRecognizer(panGestureRecognizer)
// some additional setup
// ...
}
}
Поскольку пользовательский распознаватель жестов мешает прокрутке, я попытался реализовать UIGestureRecognizerDelegate
с дополнительным требованием:
extension UITableView: UIGestureRecognizerDelegate {
func gestureRecognizer(_ gestureRecognizer: UIGestureRecognizer, shouldRecognizeSimultaneouslyWith otherGestureRecognizer: UIGestureRecognizer) -> Bool {
return otherGestureRecognizer == self.panGestureRecognizer
}
}
... но он вообще не вызывается, несмотря на делегирование tableView (как показано выше).
Кроме того, Xcode отображает предупреждение:
Метод экземпляра 'gestRecognizer (: shouldRecognizeSimralleluallyWith :)' почти соответствует необязательному требованию 'gestRecognizer (: shouldRecognizeSimrallelouslyWith :)' протокола 'UIGestureRecognizerDelegate'
Чтобы избавиться от предупреждения, япопытался добавить аннотацию @objc
до определения метода, но безуспешно.