私のアプリケーションでは、時間をカウントするためにNSTimerを実装しました。スワイプ検出があり、ユーザーが画面をスワイプすると、アニメーションが継続的に実行されます。私の質問は、画面を(左/右に連続して)スワイプするとNSTimerの速度が低下することです。誰かがこの問題を解決する方法を教えてもらえますか?
//コード
gameTimer = [NSTimer scheduledTimerWithTimeInterval:1.0/100
target:self
selector:@selector(updateGameTimer)
userInfo:nil
repeats:YES];
-(void)updateGameTimer
{
counter++;
tick++;
if(tick==100){
tick = 0;
seconds += 1;
}
if(counter==100){
counter = 0;
}
timerLabel.text = [NSString stringWithFormat:@"%i.%02d",seconds,counter];
}
//swipe detection
-(void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event{
[super touchesMoved:touches withEvent:event];
UITouch *touch = [touches anyObject];
//CGPoint curPt = [touch locationInView:self.view];
CGPoint newLocation = [touch locationInView:self.view];
CGPoint oldLocation = [touch previousLocationInView:self.view];
gameView.multipleTouchEnabled = true;
if(newLocation.x-oldLocation.x>0){
swipe_direction = 1;
//NSLog(@"left");
}
else{
swipe_direction = 2;
//NSLog(@"right");
}
if(swipe_direction==1){
//animate images
//play sound effect
}
else if(swipe_direction==2){
//animate images
//play sound effect
}
}