斯威夫特UITableView在滚动动画过程中滑动

问题描述:

我环顾四周,尝试了所有我能想到的子类化TableView,但我想我错过了一些东西。我有一个TableView条目,我可以左右滑动,并且一切正常。但是,如果:斯威夫特UITableView在滚动动画过程中滑动

1)我开始(垂直)滚动一下,然后滑动,TableView的超类ScrollView似乎阻止从我的TableViewCell滑动。

2)我停止滚动,但动画还没有完全停止,轻扫是仍然TableViewCell堵塞。

无论垂直滚动,我怎样才能让我的刷卡通过我的TableViewCell

+0

您的问题是主要的'scrollView'(了'tableView')仍在积极的姿态参与,让另一类似的手势不被识别(并且实际上被阻止)。看看http://*.com/questions/13241736/uiscrollview-cancels-uipageviewcontroller-gestures-when-scrolling?rq=1讨论这一点。 – sschale

雨燕2.2时,Xcode 7.3

我解决了这个问题基本上是在做什么,在这个线程建议:Tell ScrollView to Scroll after other pan gesture

下面是代码,应该让别人认为遇到这个线程滚动在一个表格视图,并且能够轻扫,而不必处理表格视图的平移手势识别器,由于仅仅提示垂直运动而阻止滑动。

希望它可以帮助别人。

所以(内UITableViewController - 非 - 发出必要的代码):

var lsgr : UISwipeGestureRecognizer! 

    override func viewDidLoad(){ 
     super.viewDidLoad() 
     self.lsgr = UISwipeGestureRecognizer(target: self, action: "didSwipeLeft:") 
     self.lsgr.direction = .Left 
     self.lsgr.cancelsTouchesInView = false 
     self.lsgr.delegate = self 
    } 

    func didSwipeLeft(leftSwipe: UISwipeGestureRecognizer){ 
     var ip = self.tableView.indexPathForRowAtPoint(leftSwipe.locationOfTouch(0,inView: self.tableView)) 
     print("swipe left - "+String(ip!.row)) 
    }