Iphone ui长按手势识别器仅在移动手指时识别

Iphone ui长按手势识别器仅在移动手指时识别,iphone,objective-c,Iphone,Objective C,我尝试在我的应用程序中使用UILongPressGestureRecognitor,问题是这个函数只在我稍微移动手指时调用 这是我正在使用的代码: UILongPressGestureRecognizer *longPress = [[UILongPressGestureRecognizer alloc] initWithTarget:self action:@selector(doRewind)]; [uiNextButton addGestureRecognizer:long

我尝试在我的应用程序中使用UILongPressGestureRecognitor,问题是这个函数只在我稍微移动手指时调用

这是我正在使用的代码:

    UILongPressGestureRecognizer *longPress = [[UILongPressGestureRecognizer alloc] initWithTarget:self action:@selector(doRewind)];
    [uiNextButton addGestureRecognizer:longPress];

添加UILongPressGestureRecognitor时,您还需要设置希望用户保持的时间间隔。可以使用以下代码行执行此操作:

[longPress setMinimumPressDuration:2];
您的应用程序是使用最少的配置信息创建的。您至少应该考虑设置以下属性:

最小持续时间 允许移动 在特殊情况下,您还可以设置:

所需的触摸次数 所需的磁带数
在您的情况下,我认为您希望将allowableMovement设置为0,默认值为10像素。你可以从我链接的课堂参考资料中阅读更多内容。

我知道我回答这个问题迟到了,但我想这可能会对某些人有所帮助。 我也有同样的问题。我需要启动事件并移动到下一个屏幕,而不移动或触摸我的屏幕。由于手势识别器具有不同的状态:

UIGestureRecognizerStateStart和UIGestureRecognizerStateEnded

我使用的是UIgestureRecognitzerStateEnd,这就产生了问题,因为它首先检查状态是否已开始,并且事件是否在不移动手指的情况下触发。 所以我用 UIgestureRecognitzerState启动,一切正常。 现在你不需要把手指移开。只要按住,一切正常

if (gesture.state == UIGestureRecognizerStateBegan) {
     // Do your stuff
}

这是正确的方法,其他方法如numberOfTapsRequired、allowableMovement有不同的用途。

您使用哪种方法添加此代码?您是否设置了长按间隔?可能重复@MTA:这与您在此处发布的问题完全相同:。如果你没有得到任何答案,那么你的方法就是在原来的问题中添加更多的细节,而不是再次发布相同的问题。请帮助社区保持S.O.的整洁。不,你不必设置它。它有一个