0

我正在處理Touches代表和UITapGestureRecognizer單擊。以下是方法。當我單擊我的視圖時,按照TouchesBegan,SingleTapTouchesEnded的順序,我得到三個事件。無論如何,當我檢測到SingleTap時,要停止TouchesEnded事件? Basicaaly如果TouchesMoved沒有發生,我不想執行TouchesEnded中的任務。我已經在SingleTap中使用failTouchEnded BOOL變量並在TouchesEnded中檢查它,但不確定它是否是個好主意!iOS:UIVIew觸及代表與單擊攻擊識別器

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

    } 

    - (void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event { 
      failTouchEnded = NO; 
    } 

    - (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event { 
      if(failTouchEnded) return; 

    } 

    - (void)GestureView:(GestureView*)view handleSignleTap:(UITapGestureRecognizer*)recognizer { 
      failTouchEnded = YES; 
    } 
+1

你的想法是對的......我總是用它來解決類似的問題! – Fry

+0

太棒了!我想知道可能有類似的requireGestureRecognizerToFail方法! – applefreak

回答

0

gestureRecognizer有一個屬性cancelsTouchesInView。如果是(默認),則取消手勢識別器識別手勢時的觸摸。所以你會得到一個取消,而不是接觸結束。如果不是的話,你應該設置延遲觸發結果爲YES