2016-04-28 28 views
0

我環顧四周,嘗試了所有我能想到的子類化TableView,但我想我錯過了一些東西。我有一個TableView條目,我可以左右滑動,並且一切正常。但是,如果:斯威夫特UITableView在滾動動畫過程中滑動

1)我開始(垂直)滾動一下,然後滑動,TableView的超類ScrollView似乎阻止從我的TableViewCell滑動。

2)我停止滾動,但動畫還沒有完全停止,輕掃是仍然TableViewCell堵塞。

無論垂直滾動,我怎樣才能讓我的刷卡通過我的TableViewCell

+0

您的問題是主要的'scrollView'(了'tableView')仍在積極的姿態參與,讓另一類似的手勢不被識別(並且實際上被阻止)。看看http://stackoverflow.com/questions/13241736/uiscrollview-cancels-uipageviewcontroller-gestures-when-scrolling?rq=1討論這一點。 – sschale

回答

0

雨燕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)) 
    }