美文网首页代码片段iOSiOS OC 学习手册
iOS view添加手势,防止view上点击其他视图触发点击效果

iOS view添加手势,防止view上点击其他视图触发点击效果

作者: Senior丶 | 来源:发表于2016-09-09 12:34 被阅读3836次
    镇楼图.jpg
    • 在开发过程中,我们可能会遇到这个问题. 当我们给一个view添加了手势,但是我们又不想点击view上面的视图也触发手势.如下图:
      我们在红色view上添加了手势,但是又不想点击黄色view也触发.其实这里用到UITapGestureRecognizer的一个代理方法
      0.png
    • 上代码,先创建两个view,并且给bigView添加手势
        self.bigView = [[UIView alloc]initWithFrame:CGRectMake(50, 50, 100, 100)];
        self.bigView.backgroundColor = [UIColor redColor];
        UITapGestureRecognizer *recognizer = [[UITapGestureRecognizer alloc]initWithTarget:self action:@selector(bigMap:)];
        recognizer.delegate = self;
        [self.bigView addGestureRecognizer:recognizer];
        [self.view addSubview:self.bigView];
      
        self.smallView = [[UIView alloc]initWithFrame:CGRectMake(0, 0, 50, 50)];
        self.smallView.backgroundColor = [UIColor yellowColor];
        [self.bigView addSubview:self.smallView];
    
    
    • 实现UITapGestureRecognizer的一个代理方法,我不用多说,大家一看就明白怎么回事了.这是就解决了防止点击黄色view也触发的问题了
    - (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldReceiveTouch:(UITouch *)touch{
        
        if ([touch.view isDescendantOfView:self.smallView]) {
            return NO;
        }
        return YES;
    }
    
    

    是不是很简单啊.最后送大家一个我自己用无人机拍摄的小视频.

    相关文章

      网友评论

      本文标题:iOS view添加手势,防止view上点击其他视图触发点击效果

      本文链接:https://www.haomeiwen.com/subject/dceeettx.html