Lol*_*z89 1 iphone objective-c ipad ios uitapgesturerecognizer
我正在使用两个不同的TapGestureRecognizer来处理屏幕上的单击和双击.这是代码:
UITapGestureRecognizer *tapGR =[[UITapGestureRecognizer alloc]initWithTarget:self action:@selector(handleTap:)];
[tapGR setDelegate:self];
[tapGR setNumberOfTapsRequired:1];
[self addGestureRecognizer:tapGR];
UITapGestureRecognizer *doubleTapGR = [[UITapGestureRecognizer alloc]initWithTarget:self action:@selector(handleDoubleTap:)];
[doubleTapGR setNumberOfTouchesRequired:2];
[self addGestureRecognizer:doubleTapGR];
[tapGR requireGestureRecognizerToFail : doubleTapGR];
[tapGR release];
[doubleTapGR release];
Run Code Online (Sandbox Code Playgroud)
即使我指定了[tapGR requireGestureRecognizerToFail:doubleTapGR],也会执行"handleTap"选择器.哪里出错了?
你犯了一个错误!您使用的setNumberOfTouchesRequired
方法doubleTapGR
代替使用setNumberOfTapsRequired
.这是更正后的代码:
UITapGestureRecognizer *tapGR =[[UITapGestureRecognizer alloc]initWithTarget:self action:@selector(handleTap:)];
[tapGR setDelegate:self];
[tapGR setNumberOfTapsRequired:1];
[self addGestureRecognizer:tapGR];
UITapGestureRecognizer *doubleTapGR = [[UITapGestureRecognizer alloc]initWithTarget:self action:@selector(handleDoubleTap:)];
[doubleTapGR setNumberOfTapsRequired:2];
[self addGestureRecognizer:doubleTapGR];
[tapGR requireGestureRecognizerToFail : doubleTapGR];
[tapGR release];
[doubleTapGR release];
Run Code Online (Sandbox Code Playgroud)
最好的祝福 ;)