【问题标题】:TouchesBegan and TouchesEnded with Multitouch issueTouchesBegan 和 TouchesEnded 出现多点触控问题
【发布时间】:2010-02-25 00:18:44
【问题描述】:

我正在使用 TouchesBegan TouchesMoved 和多点触控。

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

我在 TouchesBegan 点进行边界测试,将按钮设置为向下,TouchesEnded 重置按钮也是如此。

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

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

对此有什么推荐的解决方案? UIButton 必须以某种方式做类似的事情。

【问题讨论】:

  • 重置一切是什么意思?您的按钮类是否保持触摸状态 {isTouched、isReleased} 或其他“控制器”保持触摸状态?
  • @AZ 我有一个标志可以跟踪我的“按钮”何时关闭。我可以使用 TouchesEnded 重置所有标志(在所有按钮上),但随后人们无法在释放另一个按钮时按住一个按钮

标签: iphone objective-c cocoa-touch


【解决方案1】:

您需要查看 touchesMoved: 并在触摸超出其边界时“停用”您的按钮,并在触摸返回时“重新激活”您的按钮。请参阅Handling a Complex Multi-Touch Sequences 了解如何查看突变多点触控序列(说“那是哪根手指?”的花哨方式)

【讨论】:

  • 啊,谢谢,这就是我想要的。所以他们使用字典来保存触摸信息。
  • 我坚持 Apple 的警告不要使用 NSDictionary,而是使用 CFDictionaryRef。对存在该错误的第三方代码进行了维护。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-05-20
相关资源
最近更新 更多