我有点击手势的问题。我的情况是: - 使用 UITapGestureRecognizer 关闭键盘的视图 - 视图上的标签,有 2 个手势。一UITapGestureRecognizer
打开弹窗,UITapGestureRecognizer
(触摸次数为2)快速确认弹窗。
但是当我点击标签时,UITapGestureRecognizer
on view 总是会收到动作。如何将操作转发到UILabel
.
谢谢
我有点击手势的问题。我的情况是: - 使用 UITapGestureRecognizer 关闭键盘的视图 - 视图上的标签,有 2 个手势。一UITapGestureRecognizer
打开弹窗,UITapGestureRecognizer
(触摸次数为2)快速确认弹窗。
但是当我点击标签时,UITapGestureRecognizer
on view 总是会收到动作。如何将操作转发到UILabel
.
谢谢
要点击标签,您需要为该标签启用用户交互
要接收 2 次点击,您需要执行以下操作
简而言之[tap requireGestureRecognizerToFail:dTap];
,您可以通过单击来等待一段时间以检查是否会发生双击
UITapGestureRecognizer *dTap = [[UITapGestureRecognizer alloc]
initWithTarget:self
action:@selector(doubleTapped:)];
dTap.delegate = self;
dTap.numberOfTapsRequired = 2;
dTap.numberOfTouchesRequired = 1;
[label addGestureRecognizer:dTap];
UITapGestureRecognizer *tap = [[UITapGestureRecognizer alloc]
initWithTarget:self
action:@selector(tapped:)];
tap.delegate = self;
tap.numberOfTapsRequired = 1;
tap.numberOfTouchesRequired = 1;
[label addGestureRecognizer:tap];
[tap requireGestureRecognizerToFail:dTap];
// 它在你的 Lable 上启用用户交互,默认情况下它是 NO,所以你必须这样做。
[lbl setUserInteractionEnabled:YES];