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两种状态都会调用这个方法。
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容