我試圖找出一種方法暫時(即在單個拖動手勢期間)禁用在UITableView
上的滾動,然後重新啓用該功能以使其從中斷處繼續。在拖動期間暫時禁用UITableView滾動
我的理由是我有一個手勢識別器監視拖動,如果用戶在桌子上方拖動他們的手指,我想用手指向上調整表格的大小,然後停止調整大小並繼續滾動。當然,我不希望表格在調整大小時滾動,因爲這實際上是實現了滾動本身(通過移動整個表格視圖而不是內部滾動內容),但我無法弄清楚以這樣的方式做到這一點,即允許手勢在特定點之後再次生效(或者如果用戶在桌子上向下拖動)。
有沒有辦法暫時禁用/阻止手勢而不導致它失敗或徹底取消?
也許我可以寫一個UITableView
的子類,它可以攔截手勢並根據需要忽略它們。我應該重寫什麼方法來做到這一點?
更新:
最後我以不同的方式,這是簡單地在手勢的每個變化調整表視圖的contentOffset
接近這一。我擔心這可能看起來很「緊張」,但它實際上運行得很順利。不過,我會留下這個問題,因爲我仍然好奇這是否可以完成。
我想這個方法'scrollViewWillBeginDragging:'就是你要尋找的。 – 2015-02-10 18:51:26
@AshrafTawfeeq似乎沒有任何方法可以使用滾動視圖委託方法取消滾動。他們只是提供了一個滾動信息。 – devios1 2015-02-10 19:53:31
嗨Devios,你介意分享你的解決方案嗎? 聽起來不錯! – 2016-04-01 18:58:05