最新消息:20210816 当前crifan.com域名已被污染,为防止失联,请关注(页面右下角的)公众号

[整理]关于UITapGestureRecognizer的cancelsTouchesInView

iOS crifan 3409浏览 0评论

对于页面:

用代码:

<code>        self.tapToHideRecog = UITapGestureRecognizer(target: self, action: #selector(self.dismissCurVC(_:)))
        self.tapToHideRecog.numberOfTapsRequired = 1
        self.tapToHideRecog.delegate = self
        self.tapToHideRecog.cancelsTouchesInView = false
        self.view.addGestureRecognizer(self.tapToHideRecog)
</code>

之前以为:

cancelsTouchesInView = false

就可以实现:

点击当前页面中,会主动的,先把点击事件传递给其他支持接受的页面区域

比如此处的:

点击TableViewCell时的

didSelectRowAtIndexPath

而不会去执行UITapGestureRecognizer的selector(此处的self.dismissCurVC)

而实际上是:

1.先去执行UITapGestureRecognizer的selector(此处的self.dismissCurVC)

-》此处是让当前页面消失

2.然后仍然,才是,去执行TableViewCell的didSelectRowAtIndexPath

所以,此处要去改代码为:

才能实现:

点击TableView中的cell,只执行对应的didSelectRowAtIndexPath

点击TableView之外的区域,执行UITapGestureRecognizer的selector

转载请注明:在路上 » [整理]关于UITapGestureRecognizer的cancelsTouchesInView

发表我的评论
取消评论

表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址
90 queries in 0.170 seconds, using 22.07MB memory