【问题标题】:What's the simplest way to detect a touch on the iphone screen?检测 iPhone 屏幕触摸的最简单方法是什么?
【发布时间】:2011-01-14 20:27:22
【问题描述】:

尽管答案已被接受,但我仍然希望得到更详细的答案,并附上示例。

我得到了很多视图,我只是想,无论用户在哪里,都收集屏幕上的触摸输入。

尽管有warnings,我们如何才能检测到来自任何类的触摸而不用担心其他视图?

编辑:我尝试在最前面的视图上使用touchesBegan(工作正常)和[super touchesBegan ...][self.nextResponder ...],但that没有从主类。

我还尝试从后视图使用UIImage,但没有成功。最后我想使用一些警报,但我不确定是否可以对其进行调整以使其不可见,所以我决定先问一下最好的方法是什么。

如果它与 iOS3 兼容则特别好。

【问题讨论】:

    标签: iphone objective-c xcode


    【解决方案1】:

    您是否尝试支持旧的 iPhone OS 版本并因此坚持使用 -touchesBegan、-touchesMoved 等?

    如果没有,我建议你改用UIGestureRecognizers。这样您就不必担心其他视图。获得触摸的视图将执行其手势识别器,无需担心命中测试。

    【讨论】:

    • 对于旧版本的 iOS,您可以为您的应用使用自定义 UIWindow 类并覆盖 -sendEvent: 以实现您自己的手势识别,然后再将事件发送到正常的事件传递机制。
    • Altealice,没什么特别的,只是个新手。我不知道UIGestures 也不知道在哪里寻找“与触摸交互”。但是当谷歌搜索“xcode iphone touch”时,我最终从几个不同的来源得到了这些结果。现在就去尝试新的东西吧!你有什么代码可以展示吗?
    • 实际上,我确实更愿意坚持使用旧 iOS。我不知道UIGestures 只是iOS4。 @Jonah,你的提示听起来很可爱。我会试试看。同样,您可以提供的任何示例都会有很大帮助! :) - 你的意思可能是这样的:stackoverflow.com/questions/273450/…
    • 我在博客上写了一个例子,说明我是如何在旧的 iOS 3.x 应用上做到这一点的:blog.carbonfive.com/2009/07/13/iphone-gesture-recognition
    • 是的,这就是为什么我注意到您可能正在尝试使用旧的 iOS(当时它仍被命名为 iPhone OS,呵呵)。 UIGestures 是在 iOS 3.2 中添加的。但是,如果您针对的是较新的设备,我建议您使用它们,因为它们会消除很多艰苦的工作。 :)
    猜你喜欢
    • 1970-01-01
    • 2011-06-16
    • 1970-01-01
    • 2022-08-08
    • 1970-01-01
    • 2023-03-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多