2013-01-01 63 views
0

我有一個UILongPressGestureRecognizer設置是這樣的:UILongPressGestureRecognizer檢測是否手指移動一定半徑

UILongPressGestureRecognizer *longPress = [[UILongPressGestureRecognizer alloc] 
              initWithTarget:self 
              action:@selector(handleLongPress:)]; 
longPress.numberOfTouchesRequired = 3; 
longPress.allowableMovement = 30;

在我handleLongPress選擇,我檢查的3個狀態,UIGestureRecognizerStateBegan,UIGestureRecognizerStateChanged和UIGestureRecognizerStateEnded。 UIGestureRecognizerStateChanged是否與allowableMovement屬性有關?只有當一個手指移動超過30個像素時,我纔想要觸發該狀態,但是現在,它會以最輕微的動作觸發。

回答

0

allowableMovement是最大移動,而不是最小值。 Apple Documentation

最好的辦法是把中檢測到任何運動時調用的方法進行檢查,在此檢查時,此舉是小於一定的距離,你可以放棄任何電話。

的UILongPressGestureRecognizer擴展UIGestureRecognizer可返回每次處理方法被調用時觸摸的位置,看看UIGestureRecognizer class reference

+0

如何檢查,如果此舉是小於一定的距離? – thisiscrazy4

+0

@ thisiscrazy4檢出UIGestureRecognizer,它允許您檢索觸摸位置。 – ophychius