xib

时间:2015-08-07 17:01:52

标签: ios objective-c uiimageview xib uitapgesturerecognizer

我在UIImageView上的xib中设置了两个UITapGestureRecognizer。我还在相关的头文件中设置了IBAction。 对于单击手势识别器,我在“属性”检查器中将点击和触摸设置为1,状态为“已启用”,延迟触摸结束为“是”。 对于双击手势识别器,我将点击和触摸设置为2,状态为启用,取消触摸视图为YES,延迟触摸结束为YES。

当我双击UIImageView时,它只触发单击的IBAction方法。因此,我决定打印imageview.gestureRecognizer,它会将单击状态的UITapGestureRecognizer显示为Ended,将UITapGestureRecognizer显示为双击状态为可能。

我被困在这几个小时。我找到了以编程方式执行此操作的方法,但我想知道如何通过在xib中设置它来实现它。

任何帮助都会很棒!提前感谢您的回复!

1 个答案:

答案 0 :(得分:2)

这是一个非常好的问题。如果您向这样的代码添加手势

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

singleTap.numberOfTapsRequired = 1;
[self.view addGestureRecognizer:singleTap];

UITapGestureRecognizer *doubleTap = [[UITapGestureRecognizer alloc] initWithTarget: self action:@selector(doubleTap)] ;
doubleTap.numberOfTapsRequired = 2;
[self.view addGestureRecognizer:doubleTap];

[singleTap requireGestureRecognizerToFail:doubleTap];

一切正常,因为你取消了第一个手势

[singleTap requireGestureRecognizerToFail:doubleTap];

如果你在xib中添加两个手势,如果有双击,你总是应该取消单击。而且您总是需要使用2个属性进行手势并使用

[self.firstGestureProperty requireGestureRecognizerToFail:self.secondGestureOroperty];

单击:

enter image description here

双击:

enter image description here

源代码:

enter image description here

一切正常。