Я хочу добавить два пальца вверх и вниз в UITableView. Идея состоит в том, чтобы прокручивать ячейки с помощью одного пальца жест рукой и сделать некоторые другие действия, используя два пальца салфетки вверх/вниз жесты. Я хотел бы достичь подобного опыта в ночном режиме переключения Tweetbot в: https://vine.co/v/hF5J1Y7hubTРаспознать два пальца, прокручивать жест в UITableView
Это мой код:
func setupGestureRecognizer() {
swipeUp = UISwipeGestureRecognizer(target: self, action: "handleSwipe")
swipeDown = UISwipeGestureRecognizer(target: self, action: "handleSwipe")
swipeUp.direction = UISwipeGestureRecognizerDirection.Up
swipeDown.direction = UISwipeGestureRecognizerDirection.Down
swipeUp.numberOfTouchesRequired = 2
swipeDown.numberOfTouchesRequired = 2
self.tableView.panGestureRecognizer.maximumNumberOfTouches = 1
self.tableView.panGestureRecognizer.requireGestureRecognizerToFail(swipeUp)
self.tableView.panGestureRecognizer.requireGestureRecognizerToFail(swipeDown)
self.tableView.addGestureRecognizer(swipeUp)
self.tableView.addGestureRecognizer(swipeDown)
}
func handleSwipe() {
print("Swiped!")
let alert = UIAlertController(title: "Gesture recognizer", message: "Swipe detected", preferredStyle: UIAlertControllerStyle.Alert)
let action = UIAlertAction(title: "OK", style: UIAlertActionStyle.Default, handler: nil)
alert.addAction(action)
self.presentViewController(alert, animated: true, completion: nil)
}
setupGestureRecognizer()
называется в viewDidLoad()
Я получаю уведомление, когда я палец вверх или вниз двумя пальцами, но когда я использую жест панорамы, происходит значительное отставание перед перемещением стола. Это, вероятно, время пан жест должен ждать, чтобы убедиться, что салфетки жест не удается:
Это на самом деле имеет больше смысла для меня, чтобы установить requireGestureRecognizerToFail
на это: swipeDown.requireGestureRecognizerToFail(self.tableView.panGestureRecognizer)
, но когда я попытался его красть жест не работает. Я думаю, что есть проблема с ошибкой panGestureRecognizer
. Почему это не сбой, когда я использую два пальца, если я прямо заявляю, что он должен принять maximumNumberOfTouches = 1
?
Вы знаете, как заставить эти жесты взаимодействовать друг с другом?