我的视图控制器中有一个通用的touchesBegan。
- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {
NSLog(@"--[%s:%d]",__PRETTY_FUNCTION__,__LINE__);
}这似乎取消了UISwipeGestureRecognizer。(未被解雇)
UISwipeGestureRecognizer *swipeLeft = [[UISwipeGestureRecognizer alloc] initWithTarget:self action:@selector(handleSwipe:)];
UISwipeGestureRecognizer *swipeRight = [[UISwipeGestureRecognizer alloc] initWithTarget:self action:@selector(handleSwipe:)];
[swipeLeft setDirection:UISwipeGestureRecognizerDirectionLeft];
[swipeRight setDirection:UISwipeGestureRecognizerDirectionRight];
swipeRight.numberOfTouchesRequired=1;
swipeLeft.cancelsTouchesInView=NO;
swipeRight.cancelsTouchesInView=NO;
swipeLeft.delaysTouchesBegan = YES;
swipeRight.delaysTouchesBegan = YES;
self.viewSwipe.userInteractionEnabled=YES;
[self.viewSwipe addGestureRecognizer:swipeLeft];
[self.viewSwipe addGestureRecognizer:swipeRight];有什么想法吗?:)
发布于 2015-04-23 10:34:20
touchesBegan::在任何手势识别器之前被调用,并且确实会覆盖它们。
如果您希望在同一视图上同时支持轻击和滑动,您可以使用UITapGestureRecognizer,并调用requireGestureRecognizerToFail。
因此,将以下代码添加到代码示例的底部:
UITapGestureRecognizer *tapRecognizer = [[UITapGestureRecognizer alloc] init];
tapRecognizer.numberOfTapsRequired = 1;
[tapRecognizer requireGestureRecognizerToFail swipeLeft];
[tapRecognizer requireGestureRecognizerToFail swipeRight];https://stackoverflow.com/questions/29812358
复制相似问题