0

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

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

当用户在视图中向前和向后平移时,我坚持要获得时间间隔的点。

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

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);
}

现在我得到了用户开始向前平移的时间间隔,但问题是假设当用户开始向后平移时,时间间隔也在增加。

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

希望得到您的帮助。

提前致谢。

4

1 回答 1

1

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

//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();
于 2012-08-03T04:29:33.277 回答