美文网首页
tableview 和tap手势冲突

tableview 和tap手势冲突

作者: BailitiaoY1 | 来源:发表于2018-11-14 10:19 被阅读0次

在同一个控制器中使用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

    }

这样冲突问题就解决了

相关文章

网友评论

      本文标题:tableview 和tap手势冲突

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