【问题标题】:TouchesBegan with 2 fingers触摸从 2 根手指开始
【发布时间】:2017-09-11 20:13:19
【问题描述】:

我想跟踪用户在屏幕上的触摸。用户可以用两根手指触摸然后移除 1 或用一根手指触摸然后立即用另一根手指触摸(屏幕上当前将有两根手指)然后移除一根手指。如何准确跟踪touch 1和touch 2

【问题讨论】:

  • 由于用户可以在调用touchesmoved的屏幕上滑动,因此触摸是随机变化的。有没有办法让我按正确的顺序进行触摸。

标签: objective-c


【解决方案1】:

我不太明白您所说的“删除 1 或用一根手指触摸,然后立即用另一根手指触摸”是什么意思。我假设您正在寻找的是跟踪多次触摸。如果有,请看我的回答here

其基本概念是在调用touchesBegan:: 时将每个UITouch ID 存储在一个数组中,然后将每个ID 与touchesMoved:: 事件上的屏幕触摸进行比较。这样,每个手指都可以与单个对象配对,并在平移时被跟踪。

如果您只想跟踪两个手指,只需将 MAX_TOUCHES 设置为 2。希望这会有所帮助。

【讨论】:

  • 两根手指移动,用户将一根手指从屏幕上移开。我怎么知道是触摸 1 还是 2?
  • 使用NSArray *allTouches = [touches allObjects]; 获取特定事件的触​​摸,然后使用UITouch *touch = allTouches[i]; 获取您想要跟踪的触摸。您可能希望将其保存在一个变量中以供以后比较以确定它是哪个触摸。
  • 我的要求是 2 个手指。用户可以用两个手指滑动或(一个手指移动而另一个手指静止)或滑动时,用户会移除一根手指(这里我想确切地知道哪根手指被移除了)
  • 那么你想要达到什么样的结果呢?平移、滑动、捏合或敲击?确保您知道这些手势之间的区别。
  • 我正在为 iOS 开发一个键盘。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多