如何在Xcode中跟踪多个触摸

最近我正在创建一个可以同时拖动多个对象的应用程序。 我曾尝试使用UIPanGestureRecognizer来获取手指触摸的坐标,但我不知道哪个触摸属于哪个手指。

我需要支持四个手指同时平移而不会使用Objective-C相互干扰。

我已经搜索了一段时间的洗液,但他们显示的答案对我不起作用。 任何帮助,将不胜感激。

我在相当长的一段时间内遇到了同样的问题并最终解决了它。 以下是我的DrawView.m的代码,它是UIView的子类,能够使用drawRect:支持绘图drawRect:

 #import "DrawView.h" #define MAX_TOUCHES 4 @interface DrawView() { bool touchInRect[MAX_TOUCHES]; CGRect rects[MAX_TOUCHES]; UITouch *savedTouches[MAX_TOUCHES]; } @end @implementation DrawView -(id)initWithCoder:(NSCoder *)aDecoder { self = [super initWithCoder:aDecoder]; if (self) { // Initialization code self.multipleTouchEnabled = YES; for (int i=0; i 

我将MAX_TOUCHES设置为4,因此屏幕上会有四个对象。 这个的基本概念是在调用touchesBegan::时将每个UITouch ID存储在savedTouches数组中,然后在touchesMoved:: called时将每个ID与屏幕上的触摸进行比较。

只需将代码粘贴到.m文件中即可。 示例结果如下所示:

在此处输入图像描述

希望这可以帮助 :)