区分iPhone上的UITouch对象

Jas*_*ien 8 iphone objective-c multi-touch uikit

我试图区分iPhone上的两个(或更多)UITouch对象.具体来说,我想知道触摸发生的顺序.

例如,在我的-touchesBegan:withEvent:方法中,我获得了一个UITouch对象的NSSet.现在我可以找出有多少触摸,但是,哪个对象代表哪个手指?

我注意到UITouch上的时间戳属性 - 这就是我要找的东西吗?我知道如何获得最后一次或第一次触摸是有用的 - 提供触摸不会变异......

这就是我的问题所在.我可以使用时间戳来挑出最新的触摸,但随后首先发生的触摸移动,IT成为最新的触摸......

在本练习结束时,我希望能够实现"捏"手势来放大或缩小等.

非常感谢任何帮助,谢谢.

Dav*_*e R 24

每个手指都会获得一个UITouch对象,并且会一次又一次地向您提供相同的对象.只需记住初始UITouch对象集的指针,并进行指针比较以跟踪手指.

来自Apple的参考文档:

触摸对象在序列期间对于给定手指是持久的,并且当UIKit在其中跟踪手指时使其变异.更改的触摸属性是触摸的阶段,其在视图中的位置,其先前的位置以及其时间戳.事件处理代码评估这些属性以确定如何响应事件.


ama*_*ttn 3

我这里有一些触摸示例代码:

http://github.com/kailoa/6tringle-touchsamplecode/tree/master http://6tringle.com/blog/2009/TouchSampleCode.html

它对某些人很有用,我认为它可能对您有所帮助。

看看NSMutableArray *ActiveTouches. 这是我用来跟踪触摸发生顺序的集合。

该代码库中有一个使用该数组的收缩和拉伸示例。