对于页面:
用代码:
<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