簡體   English   中英

無需UILongPressGestureRecognizer即可快速識別長按

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM