Я не знает, почему, но не кажется, мой жест распознавань для моего контроллера зарегистрирует, я использую UITableViewController
и провел следующие шаги:Swift: Жест распознавань не регистрирует
override func viewDidLoad() {
super.viewDidLoad()
tableView.delegate = self // This should be done already as it is a subclass
// of UITableViewController, just put this to debug...
// Gesture Recognisers - never seems to register (action never called)
let swipeDown = UISwipeGestureRecognizer(target: self, action: "respondToSwipeGesture:")
swipeDown.direction = UISwipeGestureRecognizerDirection.Down
self.tableView.addGestureRecognizer(swipeDown)
}
После регистрации действия обратного вызова для жеста в viewDidLoad()
я следующий метод объявлен:
func respondToSwipeGesture(gesture: UIGestureRecognizer) {
// Can we unwrap safely?
if let swipeGesture = gesture as? UISwipeGestureRecognizer {
switch swipeGesture.direction
{
case UISwipeGestureRecognizerDirection.Down:
break
case UISwipeGestureRecognizerDirection.Up:
break
case UISwipeGestureRecognizerDirection.Left:
break
case UISwipeGestureRecognizerDirection.Right:
break
default:
break
}
}
}
Я установить контрольные точки по всем respondToSwipeGesture()
FUNC, но это, кажется, что метод никогда даже не называют - то, что может быть причиной го является? Я запускаю некоторые методы популяции данных в отдельном потоке, но я не считаю, что это должно противоречить зарегистрированному распознавателю жестов.
Мне кажется, что 'tableView' перехватывает и поглощает события касаний до ваших жестов. Вероятно, вы можете предпочесть добавить распознаватель жестов к вашему TableViewCells. –
, что имеет смысл, я дам вам попробовать – Alex
В любом случае, с точки зрения пользователя может показаться нецелесообразным прокручивать вниз по вертикальному контейнеру прокрутки. С жестом внутри ячейки, вероятно, вы должны реализовать делегата жеста в любом случае, чтобы работать с обычной вертикальной спиральной сталью. –