通过快速手指移动检测View中的所有触摸位置

时间:2015-10-23 08:50:49

标签: ios objective-c uitouch cgpoint

我想知道,如果有办法识别UITouch的每个位置。

在touchesMoved中跟随我的手指位置:

UITouch *touch = [touches anyObject];
CGPoint p = [touch locationInView:self];

我遇到问题,如果我快速移动手指,检测到“p”位置。它只是不会读取每一个X或Y位置,但会丢掉一些。

实施例: 我正在跟踪NSLog的触摸位置,如果我在iPad上快速移动手指,NSLog消息显示Y位置如:...... 281,301,322,346,375 ...

2 个答案:

答案 0 :(得分:1)

这是框架的内部行为。您可以通过跟随线的斜率安全地假设中间点。我的意思是你的起始位置是(x1,y1),结束位置是(x2,y2)然后你可以找到所有中间点。

当您改变方向或路径时,您将获得touchesMoved中的新点。

答案 1 :(得分:0)

您可以使用手势来使用以下代码获取位置

UILongPressGestureRecognizer *gr = [[UILongPressGestureRecognizer alloc] init];
            [gr addTarget:self action:@selector(userLongPressed:)];
            [self.view addGestureRecognizer:gr];

然后在userLongPressed方法中:

CGPoint point = [recognizer locationInView:self.view];

NSLog点将为您提供所有位置......

如果您想了解更多信息,请告诉我。