最新消息:20210917 已从crifan.com换到crifan.org

[整理]关于UITapGestureRecognizer的cancelsTouchesInView

iOS crifan 2929浏览 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,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址
100 queries in 0.202 seconds, using 23.33MB memory