【问题标题】:iOS UITapGestureRecognizer multiple tapsiOS UITapGestureRecognizer 多次点击
【发布时间】:2012-11-19 21:54:25
【问题描述】:

我有一个 UITapGestureRecognizer 添加到我的 UITextView。我已将 numberOfTapsRequired 设置为 1,但我确实需要将其设为 ANY。 aField 是一个 UITextView。我需要任意数量的水龙头来调用选择器。有什么办法吗?

UITapGestureRecognizer *singleTap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(stateFieldSelected)];
singleTap.numberOfTapsRequired = 1;
[aField addGestureRecognizer:singleTap];

目的是,当他们点击状态字段时,我会启动一个 UIPickerView,但如果他们双击或三次点击状态字段,它将拉起键盘。我可以添加许多手势识别器,但必须这样做似乎很蹩脚。

【问题讨论】:

  • 这不是蹩脚的:你有语义上不同的动作,应该映射到不同的手势识别器......
  • 我知道,但我只是想防止键盘出现...所以理论上,除非手势识别器被映射,否则三连击甚至四连击都会将其调出,但我知道这不太可能发生

标签: ios uigesturerecognizer


【解决方案1】:

在一个视图上使用多个手势识别器没有任何问题。但是,如果您担心除了双击操作之外单击操作会被调用两次,您可以指定单击识别器需要双击识别器失败:

UITapGestureRecognizer *doubleTap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(someOtherMethod)];
[doubleTap setNumberOfTapsRequired:2];
[aField addGestureRecognizer:doubleTap];

UITapGestureRecognizer *singleTap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(stateFieldSelected)];
[singleTap setNumberOfTapsRequired:1];
[singleTap requireGestureRecognizerToFail:doubleTap];
[aField addGestureRecognizer:singleTap]; 

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-08-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-04-23
    • 2011-06-20
    • 1970-01-01
    相关资源
    最近更新 更多