iOS UILongPressGestureRecognizer 的两次触发

UILongPressGestureRecognizer *longGesture = [[UILongPressGestureRecognizer alloc] initWithTarget:self action:@selector(longGestureAction:)];
longGesture.cancelsTouchesInView = NO;
[self.view addGestureRecognizer:longGesture];

其实是因为响应状态的不同。所以,要在你的方法里面加上状态的判断。

  • (void)longGestureAction:(UIGestureRecognizer *)gesture {
    if (gesture.state == UIGestureRecognizerStateBegan) {
    [self yourMethod];
    }
    }
    要不然 UIGestureRecognizerStateBegan 和 UIGestureRecognizerStateEnded两种状态都会调用这个方法。

你可能感兴趣的:(iOS UILongPressGestureRecognizer 的两次触发)