首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >touchesBegan取消UISwipeGestureRecognizer

touchesBegan取消UISwipeGestureRecognizer
EN

Stack Overflow用户
提问于 2015-04-23 10:08:02
回答 1查看 406关注 0票数 1

我的视图控制器中有一个通用的touchesBegan。

代码语言:javascript
复制
- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {
    NSLog(@"--[%s:%d]",__PRETTY_FUNCTION__,__LINE__);
}

这似乎取消了UISwipeGestureRecognizer。(未被解雇)

代码语言:javascript
复制
   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];

有什么想法吗?:)

EN

回答 1

Stack Overflow用户

发布于 2015-04-23 10:34:20

touchesBegan::在任何手势识别器之前被调用,并且确实会覆盖它们。

如果您希望在同一视图上同时支持轻击和滑动,您可以使用UITapGestureRecognizer,并调用requireGestureRecognizerToFail。

因此,将以下代码添加到代码示例的底部:

代码语言:javascript
复制
UITapGestureRecognizer *tapRecognizer = [[UITapGestureRecognizer alloc] init];
tapRecognizer.numberOfTapsRequired = 1;
[tapRecognizer requireGestureRecognizerToFail swipeLeft];
[tapRecognizer requireGestureRecognizerToFail swipeRight];
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29812358

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档