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 に答える