首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >UIPanGestureRecognizer与UISwipeGestureRecognizer重叠

UIPanGestureRecognizer与UISwipeGestureRecognizer重叠
EN

Stack Overflow用户
提问于 2012-08-02 01:15:12
回答 3查看 2.3K关注 0票数 2

我有一个连接了UIPanGestureRecognizerUIView。我在UIView中也有一个对象,它有多个UISwipeGestureRecognizers

与对象关联的UIPanGestureRecognizerUISwipeGestureRecognizers重叠。

有没有办法让UIPanGestureRecognizer完全忽略UIView的某个区域,或者让对象的UISwipeGestureRecognizers优先并覆盖UIView's UIPanGestureRecognizer

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-08-03 05:21:40

使用这个委托方法解决了这个问题:

代码语言:javascript
复制
- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldReceiveTouch:(UITouch *)touch
{
      if ([touch.view isKindOfClass:[UIButton class]] && gestureRecognizer == recognizer) return NO;
      return YES;
}

感谢您为我指明了正确的方向@MikeS

票数 2
EN

Stack Overflow用户

发布于 2012-08-02 03:16:02

你想要的是。

代码语言:javascript
复制
-(BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldRecognizeSimultaneouslyWithGestureRecognizer:(UIGestureRecognizer *)otherGestureRecognizer
{
     if(gestureRecognizer == myPanGesture) return NO;

     return YES;
}

或该委托方法的类似用法。它是UIGestureRecognizerDelegate协议的一部分。这将允许您在滑动时无法识别平移。

票数 4
EN

Stack Overflow用户

发布于 2012-10-18 20:14:52

非常感谢你的回答,这对我的问题很有帮助。

我只想分享我的解决方案,因为它可能会有帮助:

代码语言:javascript
复制
-(BOOL) gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldReceiveTouch:(UITouch *)touch{
NSLog2(@"Gesture on Class %@ tag %i", [touch.view class], touch.view.tag);////////

if (touch.view.tag == kTagToIgnoreGestures){
    return NO;
}
return YES;

}

我定义了一个kTagToIgnoreGestures,它是应该忽略手势的视图标记。这样,我就可以在一个UIGestureRecognizer视图中有两个子视图,只有一个子视图会受到手势的影响。

希望能有所帮助。Shefy

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11764271

复制
相关文章

相似问题

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