在 Xcode 中检测任何触摸(不是 TapGesture)

Posted

技术标签:

【中文标题】在 Xcode 中检测任何触摸(不是 TapGesture)【英文标题】:Detecting ANY touch (not TapGesture) in Xcode 【发布时间】:2020-01-19 23:19:17 【问题描述】:

我知道您可以使用 UITapDetector 来检测任何时候点击屏幕。但是,有没有办法检测任何时候屏幕被简单地触摸?长短,随便什么,手指甚至不必再次抬起,只要触摸屏幕,就会发生一些事情。

【问题讨论】:

【参考方案1】:

是的,实现 UIResponder touchesBegan(_:with:) 和相关方法。现在您正在接收原始触摸(不是完全原始的,因为它们仍然与命中测试视图相关联);你可以随心所欲地解释或回应它们。例如,这就是您实现绘图应用程序的方式。

事实上,在手势识别器发明之前,我们使用所有触摸都必须这样做。

【讨论】:

太棒了,谢谢,所以如果我有这样的东西:~~~Swift class MyTapGesture: UITapGestureRecognizer var number = 0 ~~~我将如何用 UIResponder 重新实现它? 我不知道重制是什么意思。您只需在视图中覆盖touchesBegan,现在(如果它是用户交互的)任何类型的触摸都会触发该方法,您可以做任何您喜欢的事情。此处示例:github.com/mattneub/Programming-ios-Book-Examples/blob/master/…

以上是关于在 Xcode 中检测任何触摸(不是 TapGesture)的主要内容,如果未能解决你的问题,请参考以下文章

检测触摸并按住屏幕iPhone(Xcode)[重复]

Xcode Swift - 检测屏幕上颜色的触摸

未检测到 SKSpriteNode 触摸

在Sprite纹理中检测触摸而不是整个框架iOS Swift SpriteKit?

检测用户是不是在 iOS 上触摸过屏幕

TapgestureRecognizer 将触摸检测为滚动视图