2015-09-27 28 views
1

我想,當用戶提起他們的手指在一個UITableView,而他們滾動檢測,所以在UIScrollView委託方法scrollViewDidScroll:當檢測到用戶擡起手指時的UIScrollView

func scrollViewDidScroll(scrollView: UIScrollView) 
{ 
    // Some code… 


    if scrollView.panGestureRecognizer.state == .Ended 
    { 
     NSLog("ENDED") 
    } 
} 

對我來說,這聽起來像它應該工作,因此當我進一步調查並記錄了此時發生的狀況時,只有兩個日誌分別爲ChangedPossible

據我的理解,Ended應該在可能之前發生,如果手勢已經結束。

蘋果文檔:

識別爲連續手勢的結束

姿勢識別已經接收到的觸摸。它在運行循環的下一個循環中發送它的動作消息(或消息),並將其狀態重置爲UIGestureRecognizerStatePossible。

這裏究竟發生了什麼?我怎樣才能找到用戶在滾動過程中提起手指離開我的UITableView

回答

1

您可以通過執行-scrollViewDidEndDragging:willDecelerate:UIScrollViewDelegate方法來確定何時擡起手指。不需要檢查底層手勢識別器的狀態。

+0

是的,剛剛發現了困難的方式,哈哈。哦,我責備不清楚的方法名稱 –

0

好的,所以scrollViewDidEndDragging:willDecelerate:不滾動滾動視圖時,它實際上是當用戶舉起他們的手指。這是發生在Ended的地方。

相關問題