小编bar*_*kam的帖子

识别两个手指在UITableView中向下滑动手势

我想在UITableView中添加两个手指向上和向下滑动手势.我们的想法是使用一个手指摇动手势滚动单元格,并使用两个手指向上/向下滑动手势来执行其他操作.我想为Tweetbot的夜间模式切换获得类似的体验:https://vine.co/v/hF5J1Y7hubT

这是我的代码:

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)
}
Run Code Online (Sandbox Code Playgroud)

setupGestureRecognizer() 被称为 viewDidLoad()

当我用两根手指向上或向下滑动时,我会收到警报但是当我使用平移手势时,在桌子移动之前会有明显的延迟.这可能是泛手势需要等待以确保滑动手势失败的时间:

实际上对我来说更有意义requireGestureRecognizerToFail:swipeDown.requireGestureRecognizerToFail(self.tableView.panGestureRecognizer)但是当我尝试它时,滑动手势根本不起作用.我认为 …

uitableview uigesturerecognizer ios uiswipegesturerecognizer uipangesturerecognizer

5
推荐指数
1
解决办法
467
查看次数