iphone - TouchesBegan 和 TouchesEnded 多点触控问题

标签 iphone objective-c cocoa-touch

我将 TouchesBegan TouchesMoved 与多点触控一起使用。

我有一个本质上是按钮的手动实现。

我在 TouchesBegan 的点上进行边界测试以将按钮设置为按下状态,而 TouchesEnded 的点相同以将其重置。

问题是,如果用户在抬起手指之前将手指移出按钮的边界,那么 TouchesEnded 就会超出触摸开始的按钮边界。

我不能只重置 touchesended 上的所有内容,因为用户可能仍在用另一根手指按住另一个按钮。

推荐的解决方案是什么? UIButton 一定在做类似的事情。

最佳答案

您需要观察 touchesMoved: 并在触摸移出其边界时“停用”您的按钮,并在触摸移回时“重新激活”您的按钮。参见 Handling a Complex Multi-Touch Sequences用于解释如何观察多点触摸序列的突变(说“那是哪个手指?”的奇特方式)

关于iphone - TouchesBegan 和 TouchesEnded 多点触控问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2330705/

相关文章:

iphone - cocoa 服务器问题

iphone - 除了 MainWindow.xib 之外,是否可以创建没有单独 xib 的通用应用程序?

objective-c - 如何将动态创建的 UIWebView 从 loadHTMLString 保存到文档目录?

iphone - 在方向锁定的情况下强制相机在风景中查看

iphone - iOS中如何访问需要认证的URL

iphone - Swift 中的字典不起作用?

iphone - 将记录保存到 coreData 需要很长时间,我怎样才能更快地插入它们?

objective-c - @selector 到底是什么?

ios - 了解 NSRunLoop

iphone - 使用按钮而不是 ui 导航 Controller 在 View 之间切换