2012-09-11 23 views
0

是否可以僅觸發一次UIPinchGestureRecognizer動作?在UIPinchGestureRecognizer上調用動作一次

我想讓我的用戶捏(實際上傳播)到一個動作的火,但該方法不斷調用,我明白是一個UIPinchGestureRecognizer的功能。

更新的代碼使用回答以下(只檢測變焦):

-(void) handlePinchGesture: (UIPinchGestureRecognizer *) sender { 
    if (sender.state == UIGestureRecognizerStateBegan) { 
     self.startingScale = sender.scale; 
    } 
    if (sender.state == UIGestureRecognizerStateEnded) { 
     if (sender.scale > self.startingScale) { 
      [self zoomIn]; 
     } 
    } 
} 

回答

5

手勢識別是狀態機,如果你沒有指定你要聽哪個狀態,以簡單的調用從手勢的選擇會任何/每個州的全面火力。

爲了限制檢測時手勢開始,你可以用它來:

- (void)myGestureRecognized:(UIGestureRecognizer*)sender 
{ 
    if (sender.state == UIGestureRecognizerStateBegan) { 
     //do something 
    } 
} 

其他識別狀態包括:

typedef enum { 
    UIGestureRecognizerStatePossible, 

    UIGestureRecognizerStateBegan, 
    UIGestureRecognizerStateChanged, 
    UIGestureRecognizerStateEnded, 
    UIGestureRecognizerStateCancelled, 

    UIGestureRecognizerStateFailed, 

    UIGestureRecognizerStateRecognized = UIGestureRecognizerStateEnded 
} UIGestureRecognizerState; 
+0

感謝,偉大工程,讓我發現只是縮放這是我需要的。 – Slee

相關問題