在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我添加了微秒的转换