![](/img/trans.png)
[英]Can I cancel a UILongPressGestureRecognizer, dismiss the view and get a long press to recognize on the view underneath?
[英]Recognize long press in swift without UILongPressGestureRecognizer
我正在圍繞手勢識別構建一個應用程序。 我已經通過識別敲擊,滑動(甚至用多個手指),捏捏來構建代碼。
現在,我想在不使用UILongPressGestureRecognizer的情況下識別長按手勢,因為(我嘗試過),它與我對其他手勢的識別發生了沖突。
我目前正在做的是,我在touchesBegan中獲得時間,在touchesMoved中我計算出時間差,如果它大於400ms(例如),我會調用一個函數。 事實是,僅當手指稍微移動時才調用此函數,而當手指完全靜止時則不調用此函數。
另一種選擇是在touchesBegan中設置某種延遲,並在400ms之后檢查手指是否仍在屏幕上,然后調用該函數。
在不阻止其余手勢識別的情況下,我該怎么做? 長按的目的是改變光線強度或類似強度(從0到1s,光線增加直到達到最大值,然后降低直到最小值等)。
接下來,我將嘗試識別旋轉手勢(僅用一根手指),因此,如果您也對此有一個答案,那將是完美的。
謝謝 !
不要設置延遲。 啟動一個timer
,該timer
將在400毫秒后觸發。 如果touchesEnded
在400ms之前被調用, touchesEnded
使該timer
無效。 當timer
觸發時,調用所需的功能。
關於第二個問題,可能您需要在touchesMoved
方法中計算points
的軌跡。 如果某種方式的移動類似於旋轉(您將需要某種閾值),請調用適當的函數。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.