长按手势响应方法为什么被调用了两次

我在一个imageView上添加了一个UILongPressGestureRecognizer手势,为什么手势的响应方法会被调用了两次?我只需要调用一次就可以了呀。... 我在一个imageView上添加了一个UILongPressGestureRecognizer手势,为什么手势的响应方法会被调用了两次?我只需要调用一次就可以了呀。 展开
 我来答
du瓶邪
2015-08-06 · TA获得超过2.4万个赞
知道大有可为答主
回答量:1.7万
采纳率:100%
帮助的人:3022万
展开全部
UILongPressGestureRecognizer *longPressGr = [[UILongPressGestureRecognizer alloc] initWithTarget:self action:@selector(longPressAction:)];
longPressGr.minimumPressDuration = 0.5f;
longPressGr.numberOfTouchesRequired = 1;
[_tableView addGestureRecognizer:longPressGr];
[longPressGr release];

这时会发现每次按住tableView并且松开的时候, longPressAction: 这个方法会执行2次
- (void)longPressAction:(UILongPressGestureRecognizer *)longPress
{
if (longPress.state == UIGestureRecognizerStateBegan) {
CGPoint point = [longPress locationInView:_tableView];

NSIndexPath *indexPath = [_tableView indexPathForRowAtPoint:point]; // 可以获取哪个cell上长按
if (indexPath != nil) {
NSLog(@"%ld", indexPath.row);
}

}
}
歪歪不知道
2013-06-26 · TA获得超过147个赞
知道答主
回答量:28
采纳率:0%
帮助的人:29.9万
展开全部
借鉴一下别人的答案 的确可以解决问题:
- (void) handleLongPressAction:(UILongPressGestureRecognizer*)press {
//解决响应两次的问题
if (press.state == UIGestureRecognizerStateEnded) {

return;

} else if (press.state == UIGestureRecognizerStateBegan) {

//TODO
}
}
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式