UILongPressRecognizer如何工作?

时间:2014-05-20 07:40:31

标签: ios objective-c mkmapview uigesturerecognizer

如果您开始按屏幕,但由于minimumPressDuration瘫痪而移动手指,手势会被取消,您的动作会被移到视图中。如果达到minimumPressDuration,则移动手指的数量并不重要。我想避免这种情况,如果手指移动大于allowableMovement,我总是取消手势。

我已经看过this thread,但该解决方案并不适用于我。

我已经尝试了对UILongPressureGestureRecognizer进行子类化,并在满足我的要求时将状态设置为失败或取消,但似乎无法正常工作,我想取消它是不够的并且必须自己转发活动?我该怎么做?我的意图是与MKMapView一起使用它。我对此感到非常沮丧,我已经试了两天。

1 个答案:

答案 0 :(得分:0)

试试这个:

UILongPressGestureRecognizer *longpress = [[UILongPressGestureRecognizer alloc] initWithTarget:self action:@selector(LongPress_action:)];
longpress.minimumPressDuration = 2.0; //seconds
longpress.delegate = self;
[yourview addGestureRecognizer:longpress]; // where you want to add

调用此方法:

- (void)LongPress_action:(UILongPressGestureRecognizer*)gesture
{
    if ( gesture.state == UIGestureRecognizerStateEnded ) 
    {
       NSLog(@"Long Press");
    }
}