博客> 禁止子视图响应父视图手势
禁止子视图响应父视图手势
2018-11-04 21:28 评论:0 阅读:432 我耐你
手势冲突 UIGestureRecognizer 禁止父视图响应子视图手势

在项目中难免会出现不想让子视图响应父视图手势的需求, 那么如何禁止响应呢, 下面直接贴代码

首先在不需要响应的父视图的手势设置代理, 如:

    UITapGestureRecognizer *tap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(hideOrShow:)];
     tap.delegate = self;
     [self.view addGestureRecognizer:tap];

如果有多个手势都不想收到子视图的响应, 则每个gesture都设置代理就可以了

  #pragma mark gestureRecognizer delegate
  -(BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldReceiveTouch:(UITouch      *)touch{
     if ([touch.view isDescendantOfView:subview]) {//如果是子视图交互直接returen
         return NO;
     }
     return YES;
 }

这样就可以禁止子视图手势在父视图中响应了

收藏
1
sina weixin mail 回到顶部