我有一个UIScrollView,里面有几个包含UIImageView和UILabel的UIView。当其中一个图像被单击时,将显示带有单个文本的框。但是现在我还想实现缩放和滚动到图像的可能性(用ScrollView中的图像显示UIImageView,实际上这不是问题)。但是我需要知道,当图片是Double-Tapped时。
我目前使用带有NumberOfTapsRequires:1的UITapGestureRecognizer来显示包含文本的Box。但是第二个UITapGestureRecognizer需要触摸2不起作用,因为第一个识别器在之前拍摄并在整个屏幕上显示该框。
也许你有一个想法,如何实现这一点。如果是UITapGesture-Solution,那就好了。)
我现在已经尝试过了,但它仍然不起作用:
UITapGestureRecognizer *gR;
gR = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(ScrollView_onTap:)];
[gR setNumberOfTapsRequired:1];
[tmpPage addGestureRecognizer:gR];
gR = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(showFunctionMenu:)];
[gR setNumberOfTapsRequired:2];
[tmpPage addGestureRecognizer:gR];
[gR release];
gR = nil;
第二个识别器有时只拍摄,但主要是第一个。有什么想法吗?
答案 0 :(得分:4)
解决方案可能是使用以下代码片段,其中requireGestureRecognizerToFail
将为您解决问题:
UITapGestureRecognizer *singleTapGR, *doubleTapGR;
singleTapGR = [[UITapGestureRecognizer alloc] initWithTarget:self
action:@selector(mySingleTapHandler)];
doubleTapGR = [[UITapGestureRecognizer alloc] initWithTarget:self
action:@selector(myDoubleTapHandler)];
doubleTapGR.numberOfTapsRequired = 2;
[singleTapGR requireGestureRecognizerToFail:doubleTapGR];
[view addGestureRecognizer:singleTapGR];
[view addGestureRecognizer:doubleTapGR];
答案 1 :(得分:1)
@Kevin我想你要定义numberOfTapsRequired
而不是numberOfTouchesRequired
两者都是不同的东西。有关更清晰的信息,请查看相同的文档