[英]Adding single and double tap gesture on subview of UITableViewCell
我在UITableViewCell
有一个UIImageView
。 我正在尝试添加单击手势以全尺寸和双击手势来查看它。 这是我的代码:
UITapGestureRecognizer *aSingleTapGesture = [[[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(SingleTapGestureRecognizer:)] autorelease];
aSingleTapGesture.delegate = self;
aSingleTapGesture.numberOfTapsRequired = 1;
[cell.imgProductImage addGestureRecognizer:aSingleTapGesture];
UITapGestureRecognizer *aDoubleTapGesture = [[[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(doubleTapGestureRecognizer:)] autorelease];
aDoubleTapGesture.delegate = self;
aDoubleTapGesture.numberOfTapsRequired = 2;
[cell.imgProductImage addGestureRecognizer:aDoubleTapGesture];
它只调用单击手势,并且从未调用双击手势。 比我使用require to fail
单击手势require to fail
。
[aSingleTapGesture requireGestureRecognizerToFail:aDoubleTapGesture];
好吧,使用这段代码,我可以同时调用单击和双击手势,但问题是tableView:didSelectRowAtIndexPath:
也被调用。 如果我的手势被调用,我不想调用didSelectRowAtIndexPath。 根据我的理解,正在调用它,因为在调用didSelectRowAtIndexPath时,单击手势正在等待双击手势。
请帮忙。
您可以在tableview单元格中使用UIButton而不是UIImageView。 使用以下代码获取单击和双击。
//add target for your UITableViewCell's button
[aBtnThumbObj addTarget:self action:@selector(btnThumbClickDouble:) forControlEvents:UIControlEventTouchDownRepeat];
[aBtnThumbObj addTarget:self action:@selector(btnThumbClickSingle:) forControlEvents:UIControlEventTouchUpInside];
-(void)btnThumbClickSingle:(UIButton*)sender
{
[self performSelector:@selector(singleTapOnButtonSelector:) withObject:sender afterDelay:0.2];
}
-(void)btnThumbClickDouble:(UIButton*)sender
{
[NSObject cancelPreviousPerformRequestsWithTarget:self selector:@selector(singleTapOnButtonSelector:) object:sender];
//Your implementation for double tap
}
-(void)singleTapOnButtonSelector:(UIButton*)sender
{
//Your implementation for single tap
}
您可以将单元格的选择样式设置为
cell.selectionStyle = UITableViewCellSelectionStyleNone;
然后就是不要实现-tableViewDidSelectRowAtIndexPath方法
这两行代码对我有用:
tapGesture.cancelsTouchesInView = YES;
tapGesture.delaysTouchesBegan = YES;
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.