问题记录 - 子视图不响应父视图的手势

需求:自定义一个提示框,添加一个全屏的透明遮罩层,点击遮罩层提示框隐藏消失,点击提示框不做响应。

问题:在遮罩层正常添加点击手势的话,子视图同样也会响应父视图的手势。我们需要隔绝父视图的手势。

解决:UIGestureRecognizer签订代理UIGestureRecognizerDelegate
实现代理方法:

func gestureRecognizer(_ gestureRecognizer: UIGestureRecognizer, shouldReceive touch: UITouch) -> Bool {
}

在代理方法中处理视图是否响应手势。

        let tap = UITapGestureRecognizer(target: self, action: #selector(clickTapAction))
        tap.delegate = self
    func gestureRecognizer(_ gestureRecognizer: UIGestureRecognizer, shouldReceive touch: UITouch) -> Bool {
        if (touch.view?.isDescendant(of: self.backView))! {
            return false
        }
        return true
    }
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容