UIButton - 在调用触摸重复时阻止调用触发事件

时间:2015-05-27 03:12:45

标签: ios cocoa-touch ios8 uibutton

我有一个按钮,当用户点击它时会以一种方式运行,而当用户双击它时会有另一种按钮。如果用户双击按钮,我不希望单击行为发生。

如果识别出双击,我怎样才能阻止调用触地事件?

2 个答案:

答案 0 :(得分:1)

您可以使用目标动作;对于UIControlEvents,您可以像这样使用“UIControlEventTouchDown”和“UIControlEventTouchDownRepeat”:

props.setProperty("customAnnotatorClass.segment","edu.stanford.nlp.pipeline.ChineseSegmenterAnnotator");


        props.setProperty("pos.model","edu/stanford/nlp/models/pos-tagger/chinese-distsim/chinese-distsim.tagger");
        props.setProperty("parse.model","edu/stanford/nlp/models/lexparser/chinesePCFG.ser.gz");

        props.setProperty("segment.model","edu/stanford/nlp/models/segmenter/chinese/ctb.gz");
        props.setProperty("segment.serDictionary","edu/stanford/nlp/models/segmenter/chinese/dict-chris6.ser.gz");
        props.setProperty("segment.sighanCorporaDict","edu/stanford/nlp/models/segmenter/chinese");
        props.setProperty("segment.sighanPostProcessing","true");

        props.setProperty("ssplit.boundaryTokenRegex","[.]|[!?]+|[。]|[!?]+");


        props.setProperty("ner.model","edu/stanford/nlp/models/ner/chinese.misc.distsim.crf.ser.gz");
        props.setProperty("ner.applyNumericClassifiers","false");
        props.setProperty("ner.useSUTime","false");

但是会延迟0.5秒!

答案 1 :(得分:0)

据我了解,您希望在同一个按钮上使用不同的行为,因此只需应用两个不同的点击手势。以下代码可能对您有所帮助。

UIButton *btn1=[[UIButton alloc]init];  //your button

//Two diff method call for two diff behaviour

UITapGestureRecognizer *singleTap = [[UITapGestureRecognizer alloc] initWithTarget:self  action:@selector(singleTapEvent:)];
UITapGestureRecognizer *doubleTap = [[UITapGestureRecognizer alloc] initWithTarget:self  action:@selector(doubleTapEvent:)];

//specify the number of tapping event require to execute code.
singleTap.numberOfTapsRequired = 1;  
doubleTap.numberOfTapsRequired = 2;

[singleTap requireGestureRecognizerToFail:DoubleTap];

//Apply  multiple tap gesture to your  button
[btn1 addGestureRecognizer:singleTap]; 
[btn1 addGestureRecognizer:doubleTap];