我有一個UITableView
,我想自然滾動自己。不過,我也有自己的手勢識別器,它也被同時識別(通過返回YES
從gestureRecognizer:shouldRecognizeSimultaneouslyWithGestureRecognizer:
)。暫時禁用一個手勢識別器,而另一個正在觸發
在我的手勢處理程序計算出某個點後,我想暫時停止表視圖處理其自身基礎手勢的手勢變化。這是因爲此時我正在調整表格視圖的大小,並且在發生這種情況時我不希望它滾動(但仍然滾動到調整大小時開始生效的位置)。
我試過在gestureRecognizer:shouldRecognizeSimultaneouslyWithGestureRecognizer:
中錄製另一個手勢識別器,它似乎確定了正確的那個,因爲它顯示爲UIScrollViewPanGestureRecognizer
。然而,我對自己的處理程序中的識別器沒有任何影響。
有人會認爲設置otherRecognizer.enabled = NO
應該做的伎倆,但它沒有任何效果。
也許表視圖在我之前接收到它的手勢事件,因此在那時禁用它並不會產生任何效果,但即使如此,您仍會認爲它會在下一個更改事件中被禁用,但事實並非如此。
我很難過。如何在不完全取消手勢的情況下暫時阻止來自接收/處理手勢的表格視圖?
更新:
當我登錄otherRecognizer
,它顯示爲UIScrollViewPanGestureRecognizer
類型的對象,但是它的狀態是Failed
。我也注意到,實際上有很多撥打gestureRecognizer:shouldRecognizeSimultaneouslyWithGestureRecognizer:
(即使是多個UIScrollViewPanGestureRecognizer
),所以也許我只是記錄和禁用錯誤的一個......但是我怎麼知道我想要的是哪一個呢?
更新2:
如果我設置tableView.panGestureRecognizer.enabled = NO
在我自己的手勢處理機內適當的時候,它讓我的一半也-表不再滾動一旦我開始調整其大小。但是,將其重新設置爲啓用不會重新激活該手勢,並且不再處理任何進一步滾動,直到新手勢開始。
更新3:
我結束了「解決」這種通過手動調整滾動視圖的內容的手勢期間偏移。它似乎工作正常,但我仍然對真正的答案感到好奇。
調整大小,我手動在我自己的手勢處理程序。基本上,當用戶在其外滾動時,表格視圖會調整大小。但問題是,它正在調整它*保持滾動*。由於表格視圖位於窗口的底部並且正在向上調整大小,因此表格不再顯示爲遵循手指,而是滾動兩倍的速度。 – devios1 2015-02-06 01:46:44
表視圖的'panGestureRecognizer'屬性是朝正確方向邁出的一步 - 感謝!看到我的更新2。 – devios1 2015-02-06 01:49:43