在iPhone中获取用户在视图中前后平移的时间间隔

在iPhone中获取用户在视图中前后平移的时间间隔,iphone,objective-c,Iphone,Objective C,如果这对你来说是一个简单的问题,我很抱歉。但我被困在这里了 我在视图中添加了平移手势 当用户在一个视图中前后平移时,我一直想得到时间间隔 现在我用这个代码来获取时间间隔 if ([sender state] == UIGestureRecognizerStateBegan ) { startTime = [[NSDate alloc]init];} else if([sender state] == UIGestureRecognizerStateCha

如果这对你来说是一个简单的问题,我很抱歉。但我被困在这里了

我在视图中添加了平移手势

当用户在一个视图中前后平移时,我一直想得到时间间隔

现在我用这个代码来获取时间间隔

if ([sender state] == UIGestureRecognizerStateBegan )
        {
            startTime = [[NSDate alloc]init];}

else if([sender state] == UIGestureRecognizerStateChanged ) 
        {         
            CGPoint velocity = [sender velocityInView:self.imageView];

            if(velocity.x > 0)
            {

                NSLog(@"gesture went right");
            }
            else
            {

                NSLog(@"gesture went left");
            }

            double chagedTime = [startTime timeIntervalSinceNow] * -1000.0;
            NSLog(@"%f changed ",chagedTime);
}
现在我得到了用户开始向前平移的时间间隔,但问题是假设当用户开始向后平移时,时间间隔也在增加

那么,如何在向前平移时增加时间间隔,在向后平移时减少时间间隔呢

希望得到你的帮助


提前感谢。

如果我正确阅读了您的问题,您希望记录用户向前平移的时间,并从中减去用户向后平移的时间

//Declared:
double netTimeInterval;
double previousStartTime;

if ([sender state] == UIGestureRecognizerStateBegan )
    netTimeInterval = 0;
else if([sender state] == UIGestureRecognizerStateChanged )
{
    CGPoint velocity = [sender velocityInView:sender.view];
    double changedTime;
    changedTime = (velocity.x > 0)? (CFAbsoluteTimeGetCurrent()-previousStartTime):(previousStartTime-CFAbsoluteTimeGetCurrent());
    //Conversion from seconds to microseconds
    changedTime *=1000;

    netTimeInterval += changedTime;
    NSLog(@"%f",changedTime);
    NSLog(@"%f",netTimeInterval);
}
previousStartTime = CFAbsoluteTimeGetCurrent();

好。。。是 啊时间是单向的。这与用户手指的移动方式无关。这是毫秒还是微秒。我们可以将其转换为微秒吗。@user923370我添加了微秒的转换