`UIGestureRecognizer`命中测试

Posted

技术标签:

【中文标题】`UIGestureRecognizer`命中测试【英文标题】:`UIGestureRecognizer` hit testing 【发布时间】:2014-06-30 12:39:18 【问题描述】:

UIViewss 是否像针对触摸事件一样针对UIGestureRecognizers in the same way 进行命中测试?尤其是使用的hitTest:withEvent:方法是一样的吗?

这意味着在被透明视图覆盖的视图中将找不到手势识别器,除非对 hitTest:withEvent: 进行了调整以实现这一点。

【问题讨论】:

【参考方案1】:

我认为手势识别器在响应者链向上移动时被视为子视图,因此是的,它们将使用与常规视图相同的命中测试方法。

回答你的最后一个问题。

是的,如果您有一个带有手势识别器的UIView 并用透明视图覆盖它(注意:它必须有userInteractionEnabled = YES),那么手势识别器将不会触发。

您可以在WWDC 2014 session 235 中看到一个很好的解决此类问题的示例:“高级滚动视图和触摸处理技术”。成绩单可能会变得可用here。

【讨论】:

感谢您的编辑。不确定如何直接链接到会话...我现在这样做了:D :-) 我认为它因年而异。具有实时编码环境的新语言肯定很棒,但能够可靠地链接到会话视频可能会更好。顺便说一句,很棒的视频,谢谢。 在那张纸条上,非常新的 ***.com/questions/24491311/… 可以使用 +1 :-) 从视频来看,手势似乎确实使用了相同的触摸命中测试方法 - 是否值得将其添加到答案中?我很乐意编辑。 添加,我认为是这样,但我不是 100% 确定。谢谢

以上是关于`UIGestureRecognizer`命中测试的主要内容,如果未能解决你的问题,请参考以下文章

UIGestureRecognizer 从头开始​​制作 UISlider

IntelliJ:Scala 测试中的断点不会被命中

WPFの命中测试

四个旋转顶点之间的命中测试

用线命中测试

为啥必须使用 CALayer 的presentationLayer 进行命中测试?