2013-05-04 95 views
0

在我看來,我重寫所有的「觸摸*」方法,讓用戶在屏幕上繪製。我正在錄製地點。 另外我在我的視圖中有兩個手勢識別器來檢測單擊和雙擊。 如果我現在將手指稍微移動一小段,我會記錄一個小的「繪製」手勢。然而,當舉起手指時,將觸發額外的輕擊手勢。 通過試驗和錯誤,我可能找出最短時間和移動閾值,但我確定有更聰明的方法? 我需要知道多少移動和/或它是保存假設沒有輕擊手勢會觸發。如何選擇輕擊手勢而不是畫手勢?

回答

0

您可以避免輕敲手勢。而不是你可以識別觸摸事件本身的敲擊。

- (void)touchesEnded:(NSSet*)touches withEvent:(UIEvent*)event { 
    if(touches.count == 1) 
    { 

     if([[touches anyObject] tapCount] == 1) 
     { 
     // Do the action here for single tap 
     } 

     else if([[touches anyObject] tapCount] == 2) 
     { 
     // Do the action here for double tap 
     } 
    } 
} 

而且你必須設置一個全局布爾變量來檢查用戶是否將手指移動到了屏幕上。

BOOL _isMoved; 

,並使其在觸摸移動事件

- (void)touchesMoved:(NSSet*)touches withEvent:(UIEvent*)event { 

    _isMoved = YES; 
} 

記錄軌道之前TRUE,你檢查該標誌是否是真還是假?並且不要忘記在保存軌道後將旗標設爲FALSE

希望這會對您有所幫助:)