iOS给父控件加手势但不让子控件响应

比如下图,我给Controller的View加上了一个手势UITapGestureRecognizer,但我并不希望它的子控件(雪青色的View)也响应我父控件的点击事件.

首先,给这个手势设置代理

UITapGestureRecognizer * tap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(hideKeyboard)];

[self.view addGestureRecognizer:tap];

tap.numberOfTapsRequired = 1;

tap.delegate = self;

实现代理代理方法,在代理方法里判断即可

- (BOOL)gestureRecognizer:(UIGestureRecognizer*)gestureRecognizer shouldReceiveTouch:(UITouch*)touch {

        if([touch.view isDescendantOfView:self.mySubView]) {

                return NO;

        }

        return YES;

}

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容