tableview 和tap手势冲突

在同一个控制器中使用tableview和tap手势进行对tableview的隐藏时,tableview的cell点击会与tap手势发生冲突,只响应tap手势不相应cell的点击方法

解决方法如下:

对tap手势添加代理:

        let Tap = UITapGestureRecognizer(target: self, action: #selector(TapCallBack))

        Tap.delegate=self

在代理方法中使用isDescentdant方法去判断当前点击的视图是否包含在父试图中,若包含在其中则不相应tap方法,但要注意的是,控制器本身的view也包含在自身中,所以要对view进行筛选,剔除控制器view:

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

        //判断点击视图是否被主视图包含

        if (touch.view?.isDescendant(of: self.view))!{

            if touch.view == self.view{return true}

            return false

        }

return true

    }

这样冲突问题就解决了

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容